@piserve-tech/form-submission 1.3.260 → 1.3.262
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/form-fields/iframe-fields/iframe-fields.component.mjs +90 -3
- package/esm2022/form-submission/submit-form/submit-form.component.mjs +2 -1
- package/esm2022/services/whenClause.service.mjs +9 -1
- package/fesm2022/piserve-tech-form-submission.mjs +98 -2
- package/fesm2022/piserve-tech-form-submission.mjs.map +1 -1
- package/form-fields/iframe-fields/iframe-fields.component.d.ts +4 -1
- package/package.json +1 -1
- package/services/whenClause.service.d.ts +1 -0
|
@@ -11,6 +11,28 @@ export class IframeFieldsComponent {
|
|
|
11
11
|
this.cssContent = '';
|
|
12
12
|
this.scriptContent = '';
|
|
13
13
|
this.urlContent = '';
|
|
14
|
+
this.embeddableDomains = [
|
|
15
|
+
// Generic sites that usually allow embedding
|
|
16
|
+
'youtube.com',
|
|
17
|
+
'youtu.be',
|
|
18
|
+
'vimeo.com',
|
|
19
|
+
'player.vimeo.com',
|
|
20
|
+
'maps.google.com',
|
|
21
|
+
'www.google.com/maps',
|
|
22
|
+
'openstreetmap.org',
|
|
23
|
+
'codesandbox.io',
|
|
24
|
+
'stackblitz.com',
|
|
25
|
+
'jsfiddle.net',
|
|
26
|
+
'codepen.io',
|
|
27
|
+
'spotify.com',
|
|
28
|
+
'soundcloud.com',
|
|
29
|
+
'figma.com',
|
|
30
|
+
'canva.com',
|
|
31
|
+
'notion.so',
|
|
32
|
+
'facebook.com/plugins',
|
|
33
|
+
'instagram.com/p',
|
|
34
|
+
'twitter.com',
|
|
35
|
+
];
|
|
14
36
|
}
|
|
15
37
|
ngOnInit() {
|
|
16
38
|
this.valueAssigned();
|
|
@@ -75,14 +97,79 @@ export class IframeFieldsComponent {
|
|
|
75
97
|
iframeDoc.close();
|
|
76
98
|
}
|
|
77
99
|
}
|
|
78
|
-
/** Render external links safely */
|
|
79
100
|
renderLink() {
|
|
80
|
-
|
|
101
|
+
if (!this.urlContent) {
|
|
102
|
+
this.safeUrl = '';
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const url = this.urlContent.trim();
|
|
106
|
+
// Check if URL is valid
|
|
107
|
+
if (!this.isValidUrl(url)) {
|
|
108
|
+
console.warn('Invalid URL format');
|
|
109
|
+
this.safeUrl = '';
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
// Check if embeddable host
|
|
113
|
+
if (!this.isEmbeddableUrl(url)) {
|
|
114
|
+
console.warn('This website may not allow embedding');
|
|
115
|
+
// You can still LET it try
|
|
116
|
+
// Or block it completely
|
|
117
|
+
// For now: allow but warn
|
|
118
|
+
}
|
|
119
|
+
const embedUrl = this.convertToEmbedUrl(url);
|
|
120
|
+
this.safeUrl = this.sanitizeUrl(embedUrl);
|
|
121
|
+
}
|
|
122
|
+
isValidUrl(url) {
|
|
123
|
+
try {
|
|
124
|
+
new URL(url);
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
81
130
|
}
|
|
82
131
|
/** Sanitize URLs for iframes */
|
|
83
132
|
sanitizeUrl(url) {
|
|
84
133
|
return this.sanitizer.bypassSecurityTrustResourceUrl(url);
|
|
85
134
|
}
|
|
135
|
+
isEmbeddableUrl(url) {
|
|
136
|
+
try {
|
|
137
|
+
const parsed = new URL(url);
|
|
138
|
+
return this.embeddableDomains.some((domain) => parsed.hostname.includes(domain));
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
convertToEmbedUrl(url) {
|
|
145
|
+
try {
|
|
146
|
+
const parsed = new URL(url);
|
|
147
|
+
// YouTube
|
|
148
|
+
if (parsed.hostname.includes('youtube.com') &&
|
|
149
|
+
parsed.searchParams.get('v')) {
|
|
150
|
+
return `https://www.youtube.com/embed/${parsed.searchParams.get('v')}`;
|
|
151
|
+
}
|
|
152
|
+
if (parsed.hostname.includes('youtu.be')) {
|
|
153
|
+
return `https://www.youtube.com/embed/${parsed.pathname.substring(1)}`;
|
|
154
|
+
}
|
|
155
|
+
// Vimeo
|
|
156
|
+
if (parsed.hostname.includes('vimeo.com')) {
|
|
157
|
+
const videoId = parsed.pathname.split('/')[1];
|
|
158
|
+
return `https://player.vimeo.com/video/${videoId}`;
|
|
159
|
+
}
|
|
160
|
+
// Google Maps (no API key needed)
|
|
161
|
+
if (parsed.hostname.includes('google.com') &&
|
|
162
|
+
parsed.pathname.startsWith('/maps')) {
|
|
163
|
+
if (parsed.pathname.includes('/maps/embed'))
|
|
164
|
+
return url;
|
|
165
|
+
return `https://www.google.com/maps/embed?${parsed.searchParams.toString()}`;
|
|
166
|
+
}
|
|
167
|
+
return url;
|
|
168
|
+
}
|
|
169
|
+
catch (e) {
|
|
170
|
+
return url;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
86
173
|
/** Basic script validation to prevent unsafe operations */
|
|
87
174
|
isSafeScript(code) {
|
|
88
175
|
const unsafePatterns = [
|
|
@@ -108,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
108
195
|
type: ViewChild,
|
|
109
196
|
args: ['iframeRef']
|
|
110
197
|
}] } });
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZyYW1lLWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2lmcmFtZS1maWVsZHMvaWZyYW1lLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2lmcmFtZS1maWVsZHMvaWZyYW1lLWZpZWxkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFReEUsTUFBTSxPQUFPLHFCQUFxQjtJQWdCaEMsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQWRsQyxhQUFRLEdBQVEsRUFBRSxDQUFDO1FBSTVCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0IsZUFBVSxHQUFXLEVBQUUsQ0FBQztJQU1zQixDQUFDO0lBRS9DLFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssTUFBTSxFQUFFO1lBQy9CLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDeEM7YUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssTUFBTSxFQUFFO1lBQ3RDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDeEM7SUFD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Q0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7K0dBaEhVLHFCQUFxQjttR0FBckIscUJBQXFCLG1NQ1JsQyw4c0JBK0JBOzs0RkR2QmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQjttR0FNcEIsUUFBUTtzQkFBaEIsS0FBSztnQkE4Q2tCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCwgU2FmZVJlc291cmNlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1pZnJhbWUtZmllbGRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lmcmFtZS1maWVsZHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pZnJhbWUtZmllbGRzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSWZyYW1lRmllbGRzQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBxdWVzdGlvbjogYW55ID0ge307XG4gIFxuICBoZWlnaHQhOiBzdHJpbmc7XG4gIHdpZHRoITogc3RyaW5nO1xuICBjb250ZW50VHlwZTogc3RyaW5nID0gJyc7XG4gIGh0bWxDb250ZW50OiBzdHJpbmcgPSAnJztcbiAgY3NzQ29udGVudDogc3RyaW5nID0gJyc7XG4gIHNjcmlwdENvbnRlbnQ6IHN0cmluZyA9ICcnO1xuICB1cmxDb250ZW50OiBzdHJpbmcgPSAnJztcbiAgY291bnQhOiBudW1iZXI7XG5cbiAgc2FmZUh0bWxDb250ZW50ITogU2FmZUh0bWw7XG4gIHNhZmVVcmwhOiBTYWZlUmVzb3VyY2VVcmw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnZhbHVlQXNzaWduZWQoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb250ZW50VHlwZSA9PT0gJ0hUTUwnKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVuZGVySHRtbCgpLCAwKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udGVudFR5cGUgPT09ICdMSU5LJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlbmRlckxpbmsoKSwgMCk7XG4gICAgfVxuICB9XG5cbiAgdmFsdWVBc3NpZ25lZCgpIHtcbiAgICB0aGlzLmNvdW50ID0gdGhpcy5xdWVzdGlvbj8uY291bnQ7XG4gICAgdGhpcy53aWR0aCA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuYXBwZWFyYW5jZS53aWR0aFxuICAgICAgPyB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2Uud2lkdGggKyAncHgnXG4gICAgICA6ICcxMDAlJztcbiAgICB0aGlzLmhlaWdodCA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuYXBwZWFyYW5jZS5oZWlnaHRcbiAgICAgID8gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5hcHBlYXJhbmNlLmhlaWdodCArICdweCdcbiAgICAgIDogJzEwMCUnO1xuICAgIHRoaXMuY29udGVudFR5cGUgPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5pRnJhbWVQcm9wZXJ0aWVzLmNvbnRlbnRUeXBlO1xuICAgIHRoaXMuaHRtbENvbnRlbnQgPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5pRnJhbWVQcm9wZXJ0aWVzLmh0bWwuY29udGVudDtcbiAgICB0aGlzLmNzc0NvbnRlbnQgPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5pRnJhbWVQcm9wZXJ0aWVzLnN0eWxlLmNzcztcbiAgICB0aGlzLnNjcmlwdENvbnRlbnQgPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5pRnJhbWVQcm9wZXJ0aWVzLnNjcmlwdC5jb2RlO1xuICAgIHRoaXMudXJsQ29udGVudCA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuaUZyYW1lUHJvcGVydGllcy51cmw7XG4gIH1cbiAgQFZpZXdDaGlsZCgnaWZyYW1lUmVmJykgaWZyYW1lUmVmITogRWxlbWVudFJlZjxIVE1MSUZyYW1lRWxlbWVudD47XG4gIC8qKiBSZW5kZXIgSFRNTCB3aXRoIGR5bmFtaWMgQ1NTICovXG4gIHJlbmRlckh0bWwoKSB7XG4gICAgY29uc3QgaWZyYW1lID0gdGhpcy5pZnJhbWVSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBpZiAoIWlmcmFtZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgaWZyYW1lRG9jID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB8fCBpZnJhbWUuY29udGVudFdpbmRvdz8uZG9jdW1lbnQ7XG5cbiAgICBpZiAoaWZyYW1lRG9jKSB7XG4gICAgICAvLyBCdWlsZCB0aGUgY29tcGxldGUgSFRNTCBjb250ZW50IHRvIGluamVjdCBpbnRvIHRoZSBpZnJhbWVcbiAgICAgIGNvbnN0IHNhZmVIdG1sID0gYFxuICAgICAgICA8aHRtbD5cbiAgICAgICAgICA8aGVhZD5cbiAgICAgICAgICAgIDxzdHlsZT4ke3RoaXMuY3NzQ29udGVudCB8fCAnJ308L3N0eWxlPlxuICAgICAgICAgIDwvaGVhZD5cbiAgICAgICAgICA8Ym9keT5cbiAgICAgICAgICAgICR7dGhpcy5odG1sQ29udGVudCB8fCAnJ31cbiAgICAgICAgICAgIDxzY3JpcHQ+XG4gICAgICAgICAgICAgIChmdW5jdGlvbihsb2NhbFN0b3JhZ2UpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgJHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1NhZmVTY3JpcHQodGhpcy5zY3JpcHRDb250ZW50KVxuICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5zY3JpcHRDb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MICs9ICc8cCBzdHlsZT1cImNvbG9yOnJlZFwiPlNjcmlwdCBFcnJvcjogJyArIGUubWVzc2FnZSArICc8L3A+JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pKHdpbmRvdy5sb2NhbFN0b3JhZ2UpO1xuICAgICAgICAgICAgPC9zY3JpcHQ+XG4gICAgICAgICAgPC9ib2R5PlxuICAgICAgICA8L2h0bWw+XG4gICAgICBgO1xuXG4gICAgICBpZnJhbWVEb2Mub3BlbigpO1xuICAgICAgaWZyYW1lRG9jLndyaXRlKHNhZmVIdG1sKTtcbiAgICAgIGlmcmFtZURvYy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZW5kZXIgZXh0ZXJuYWwgbGlua3Mgc2FmZWx5ICovXG4gIHJlbmRlckxpbmsoKSB7XG4gICAgdGhpcy5zYWZlVXJsID0gdGhpcy5zYW5pdGl6ZVVybCh0aGlzLnVybENvbnRlbnQpO1xuICB9XG5cbiAgLyoqIFNhbml0aXplIFVSTHMgZm9yIGlmcmFtZXMgKi9cbiAgc2FuaXRpemVVcmwodXJsOiBzdHJpbmcpOiBTYWZlUmVzb3VyY2VVcmwge1xuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwodXJsKTtcbiAgfVxuXG4gIC8qKiBCYXNpYyBzY3JpcHQgdmFsaWRhdGlvbiB0byBwcmV2ZW50IHVuc2FmZSBvcGVyYXRpb25zICovXG4gIGlzU2FmZVNjcmlwdChjb2RlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCB1bnNhZmVQYXR0ZXJucyA9IFtcbiAgICAgIC93aW5kb3dcXC5wYXJlbnQvLFxuICAgICAgL2RvY3VtZW50XFwuY29va2llLyxcbiAgICAgIC9mZXRjaFxcKC8sXG4gICAgICAvWE1MSHR0cFJlcXVlc3QvLFxuICAgICAgL2V2YWxcXCgvLFxuICAgICAgL25ldyBGdW5jdGlvbi8sXG4gICAgICAvc2V0VGltZW91dHxzZXRJbnRlcnZhbC8sXG4gICAgXTtcblxuICAgIHJldHVybiAhdW5zYWZlUGF0dGVybnMuc29tZSgocGF0dGVybikgPT4gcGF0dGVybi50ZXN0KGNvZGUpKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImN1c3RvbS1lbWJlZCBtYi00XCJcbiAgICAgW3N0eWxlLndpZHRoXT1cIndpZHRoXCJcbiAgICAgW3N0eWxlLmhlaWdodF09XCJoZWlnaHRcIj5cblxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb250ZW50VHlwZVwiPlxuXG4gICAgPCEtLSBIVE1MLCBDU1MsIGFuZCBTY3JpcHQgcmVuZGVyZWQgdG9nZXRoZXIgLS0+XG4gICAgPGlmcmFtZVxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIidIVE1MJ1wiXG4gICAgICAjaWZyYW1lUmVmXG4gICAgICBzYW5kYm94PVwiYWxsb3ctc2NyaXB0cyBhbGxvdy1zYW1lLW9yaWdpblwiXG4gICAgICBbc3R5bGUud2lkdGhdPVwid2lkdGhcIlxuICAgICAgW3N0eWxlLmhlaWdodF09XCJoZWlnaHRcIlxuICAgICAgZnJhbWVib3JkZXI9XCIwXCJcbiAgICA+PC9pZnJhbWU+XG5cbiAgICA8IS0tIExpbmsgRW1iZWQgLS0+XG4gICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidMSU5LJ1wiPlxuICAgICA8aWZyYW1lXG4gICAgICpuZ0lmPVwic2FmZVVybFwiXG4gICAgIFtzcmNdPVwic2FmZVVybFwiXG4gICAgIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiXG4gICAgIFtzdHlsZS5oZWlnaHRdPVwiaGVpZ2h0XCJcbiAgICAgZnJhbWVib3JkZXI9XCIwXCJcbiAgICAgYWxsb3dmdWxsc2NyZWVuPlxuICAgPC9pZnJhbWU+XG4gICAgIDwvZGl2PlxuICAgIFxuXG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZyYW1lLWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2lmcmFtZS1maWVsZHMvaWZyYW1lLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2lmcmFtZS1maWVsZHMvaWZyYW1lLWZpZWxkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFReEUsTUFBTSxPQUFPLHFCQUFxQjtJQXVDaEMsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQXJDbEMsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUk1QixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzNCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFNeEIsc0JBQWlCLEdBQUc7WUFDbEIsNkNBQTZDO1lBQzdDLGFBQWE7WUFDYixVQUFVO1lBQ1YsV0FBVztZQUNYLGtCQUFrQjtZQUNsQixpQkFBaUI7WUFDakIscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLGNBQWM7WUFDZCxZQUFZO1lBQ1osYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixXQUFXO1lBQ1gsV0FBVztZQUNYLFdBQVc7WUFDWCxzQkFBc0I7WUFDdEIsaUJBQWlCO1lBQ2pCLGFBQWE7U0FDZCxDQUFDO0lBRTRDLENBQUM7SUFFL0MsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FB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Q1YsT0FBTyxHQUFHLENBQUM7U0FDWjtJQUNILENBQUM7SUFFRCwyREFBMkQ7SUFDM0QsWUFBWSxDQUFDLElBQVk7UUFDdkIsTUFBTSxjQUFjLEdBQUc7WUFDckIsZ0JBQWdCO1lBQ2hCLGtCQUFrQjtZQUNsQixTQUFTO1lBQ1QsZ0JBQWdCO1lBQ2hCLFFBQVE7WUFDUixjQUFjO1lBQ2Qsd0JBQXdCO1NBQ3pCLENBQUM7UUFFRixPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7K0dBdk5VLHFCQUFxQjttR0FBckIscUJBQXFCLG1NQ1JsQyw4c0JBK0JBOzs0RkR2QmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQjttR0FNcEIsUUFBUTtzQkFBaEIsS0FBSztnQkFxRWtCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCwgU2FmZVJlc291cmNlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1pZnJhbWUtZmllbGRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lmcmFtZS1maWVsZHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pZnJhbWUtZmllbGRzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSWZyYW1lRmllbGRzQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBxdWVzdGlvbjogYW55ID0ge307XG4gIFxuICBoZWlnaHQhOiBzdHJpbmc7XG4gIHdpZHRoITogc3RyaW5nO1xuICBjb250ZW50VHlwZTogc3RyaW5nID0gJyc7XG4gIGh0bWxDb250ZW50OiBzdHJpbmcgPSAnJztcbiAgY3NzQ29udGVudDogc3RyaW5nID0gJyc7XG4gIHNjcmlwdENvbnRlbnQ6IHN0cmluZyA9ICcnO1xuICB1cmxDb250ZW50OiBzdHJpbmcgPSAnJztcbiAgY291bnQhOiBudW1iZXI7XG5cbiAgc2FmZUh0bWxDb250ZW50ITogU2FmZUh0bWw7XG4gIHNhZmVVcmwhOiBTYWZlUmVzb3VyY2VVcmw7XG5cbiAgZW1iZWRkYWJsZURvbWFpbnMgPSBbXG4gICAgLy8gR2VuZXJpYyBzaXRlcyB0aGF0IHVzdWFsbHkgYWxsb3cgZW1iZWRkaW5nXG4gICAgJ3lvdXR1YmUuY29tJyxcbiAgICAneW91dHUuYmUnLFxuICAgICd2aW1lby5jb20nLFxuICAgICdwbGF5ZXIudmltZW8uY29tJyxcbiAgICAnbWFwcy5nb29nbGUuY29tJyxcbiAgICAnd3d3Lmdvb2dsZS5jb20vbWFwcycsXG4gICAgJ29wZW5zdHJlZXRtYXAub3JnJyxcbiAgICAnY29kZXNhbmRib3guaW8nLFxuICAgICdzdGFja2JsaXR6LmNvbScsXG4gICAgJ2pzZmlkZGxlLm5ldCcsXG4gICAgJ2NvZGVwZW4uaW8nLFxuICAgICdzcG90aWZ5LmNvbScsXG4gICAgJ3NvdW5kY2xvdWQuY29tJyxcbiAgICAnZmlnbWEuY29tJyxcbiAgICAnY2FudmEuY29tJyxcbiAgICAnbm90aW9uLnNvJyxcbiAgICAnZmFjZWJvb2suY29tL3BsdWdpbnMnLFxuICAgICdpbnN0YWdyYW0uY29tL3AnLFxuICAgICd0d2l0dGVyLmNvbScsXG4gIF07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnZhbHVlQXNzaWduZWQoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb250ZW50VHlwZSA9PT0gJ0hUTUwnKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVuZGVySHRtbCgpLCAwKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udGVudFR5cGUgPT09ICdMSU5LJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlbmRlckxpbmsoKSwgMCk7XG4gICAgfVxuICB9XG5cbiAgdmFsdWVBc3NpZ25lZCgpIHtcbiAgICB0aGlzLmNvdW50ID0gdGhpcy5xdWVzdGlvbj8uY291bnQ7XG4gICAgdGhpcy53aWR0aCA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuYXBwZWFyYW5jZS53aWR0aFxuICAgICAgPyB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2Uud2lkdGggKyAncHgnXG4gICAgICA6ICcxMDAlJztcbiAgICB0aGlzLmhlaWdodCA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuYXBwZWFyYW5jZS5oZWlnaHRcbiAgICAgID8gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5hcHBlYXJhbmNlLmhlaWdodCArICdweCdcbiAgICAgIDogJzEwMCUnO1xuICAgIHRoaXMuY29udGVudFR5cGUgPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5pRnJhbWVQcm9wZXJ0aWVzLmNvbnRlbnRUeXBlO1xuICAgIHRoaXMuaHRtbENvbnRlbnQgPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5pRnJhbWVQcm9wZXJ0aWVzLmh0bWwuY29udGVudDtcbiAgICB0aGlzLmNzc0NvbnRlbnQgPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5pRnJhbWVQcm9wZXJ0aWVzLnN0eWxlLmNzcztcbiAgICB0aGlzLnNjcmlwdENvbnRlbnQgPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5pRnJhbWVQcm9wZXJ0aWVzLnNjcmlwdC5jb2RlO1xuICAgIHRoaXMudXJsQ29udGVudCA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuaUZyYW1lUHJvcGVydGllcy51cmw7XG4gIH1cbiAgQFZpZXdDaGlsZCgnaWZyYW1lUmVmJykgaWZyYW1lUmVmITogRWxlbWVudFJlZjxIVE1MSUZyYW1lRWxlbWVudD47XG4gIC8qKiBSZW5kZXIgSFRNTCB3aXRoIGR5bmFtaWMgQ1NTICovXG4gIHJlbmRlckh0bWwoKSB7XG4gICAgY29uc3QgaWZyYW1lID0gdGhpcy5pZnJhbWVSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBpZiAoIWlmcmFtZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgaWZyYW1lRG9jID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB8fCBpZnJhbWUuY29udGVudFdpbmRvdz8uZG9jdW1lbnQ7XG5cbiAgICBpZiAoaWZyYW1lRG9jKSB7XG4gICAgICAvLyBCdWlsZCB0aGUgY29tcGxldGUgSFRNTCBjb250ZW50IHRvIGluamVjdCBpbnRvIHRoZSBpZnJhbWVcbiAgICAgIGNvbnN0IHNhZmVIdG1sID0gYFxuICAgICAgICA8aHRtbD5cbiAgICAgICAgICA8aGVhZD5cbiAgICAgICAgICAgIDxzdHlsZT4ke3RoaXMuY3NzQ29udGVudCB8fCAnJ308L3N0eWxlPlxuICAgICAgICAgIDwvaGVhZD5cbiAgICAgICAgICA8Ym9keT5cbiAgICAgICAgICAgICR7dGhpcy5odG1sQ29udGVudCB8fCAnJ31cbiAgICAgICAgICAgIDxzY3JpcHQ+XG4gICAgICAgICAgICAgIChmdW5jdGlvbihsb2NhbFN0b3JhZ2UpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgJHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1NhZmVTY3JpcHQodGhpcy5zY3JpcHRDb250ZW50KVxuICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5zY3JpcHRDb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MICs9ICc8cCBzdHlsZT1cImNvbG9yOnJlZFwiPlNjcmlwdCBFcnJvcjogJyArIGUubWVzc2FnZSArICc8L3A+JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pKHdpbmRvdy5sb2NhbFN0b3JhZ2UpO1xuICAgICAgICAgICAgPC9zY3JpcHQ+XG4gICAgICAgICAgPC9ib2R5PlxuICAgICAgICA8L2h0bWw+XG4gICAgICBgO1xuXG4gICAgICBpZnJhbWVEb2Mub3BlbigpO1xuICAgICAgaWZyYW1lRG9jLndyaXRlKHNhZmVIdG1sKTtcbiAgICAgIGlmcmFtZURvYy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlckxpbmsoKSB7XG4gICAgaWYgKCF0aGlzLnVybENvbnRlbnQpIHtcbiAgICAgIHRoaXMuc2FmZVVybCA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHVybCA9IHRoaXMudXJsQ29udGVudC50cmltKCk7XG5cbiAgICAvLyBDaGVjayBpZiBVUkwgaXMgdmFsaWRcbiAgICBpZiAoIXRoaXMuaXNWYWxpZFVybCh1cmwpKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0ludmFsaWQgVVJMIGZvcm1hdCcpO1xuICAgICAgdGhpcy5zYWZlVXJsID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgZW1iZWRkYWJsZSBob3N0XG4gICAgaWYgKCF0aGlzLmlzRW1iZWRkYWJsZVVybCh1cmwpKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1RoaXMgd2Vic2l0ZSBtYXkgbm90IGFsbG93IGVtYmVkZGluZycpO1xuICAgICAgLy8gWW91IGNhbiBzdGlsbCBMRVQgaXQgdHJ5XG4gICAgICAvLyBPciBibG9jayBpdCBjb21wbGV0ZWx5XG4gICAgICAvLyBGb3Igbm93OiBhbGxvdyBidXQgd2FyblxuICAgIH1cblxuICAgIGNvbnN0IGVtYmVkVXJsID0gdGhpcy5jb252ZXJ0VG9FbWJlZFVybCh1cmwpO1xuICAgIHRoaXMuc2FmZVVybCA9IHRoaXMuc2FuaXRpemVVcmwoZW1iZWRVcmwpO1xuICB9XG5cbiAgaXNWYWxpZFVybCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBuZXcgVVJMKHVybCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKiogU2FuaXRpemUgVVJMcyBmb3IgaWZyYW1lcyAqL1xuICBzYW5pdGl6ZVVybCh1cmw6IHN0cmluZyk6IFNhZmVSZXNvdXJjZVVybCB7XG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh1cmwpO1xuICB9XG5cbiAgaXNFbWJlZGRhYmxlVXJsKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IG5ldyBVUkwodXJsKTtcblxuICAgICAgcmV0dXJuIHRoaXMuZW1iZWRkYWJsZURvbWFpbnMuc29tZSgoZG9tYWluKSA9PlxuICAgICAgICBwYXJzZWQuaG9zdG5hbWUuaW5jbHVkZXMoZG9tYWluKVxuICAgICAgKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBjb252ZXJ0VG9FbWJlZFVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IG5ldyBVUkwodXJsKTtcblxuICAgICAgLy8gWW91VHViZVxuICAgICAgaWYgKFxuICAgICAgICBwYXJzZWQuaG9zdG5hbWUuaW5jbHVkZXMoJ3lvdXR1YmUuY29tJykgJiZcbiAgICAgICAgcGFyc2VkLnNlYXJjaFBhcmFtcy5nZXQoJ3YnKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBgaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtwYXJzZWQuc2VhcmNoUGFyYW1zLmdldCgndicpfWA7XG4gICAgICB9XG4gICAgICBpZiAocGFyc2VkLmhvc3RuYW1lLmluY2x1ZGVzKCd5b3V0dS5iZScpKSB7XG4gICAgICAgIHJldHVybiBgaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtwYXJzZWQucGF0aG5hbWUuc3Vic3RyaW5nKDEpfWA7XG4gICAgICB9XG5cbiAgICAgIC8vIFZpbWVvXG4gICAgICBpZiAocGFyc2VkLmhvc3RuYW1lLmluY2x1ZGVzKCd2aW1lby5jb20nKSkge1xuICAgICAgICBjb25zdCB2aWRlb0lkID0gcGFyc2VkLnBhdGhuYW1lLnNwbGl0KCcvJylbMV07XG4gICAgICAgIHJldHVybiBgaHR0cHM6Ly9wbGF5ZXIudmltZW8uY29tL3ZpZGVvLyR7dmlkZW9JZH1gO1xuICAgICAgfVxuXG4gICAgICAvLyBHb29nbGUgTWFwcyAobm8gQVBJIGtleSBuZWVkZWQpXG4gICAgICBpZiAoXG4gICAgICAgIHBhcnNlZC5ob3N0bmFtZS5pbmNsdWRlcygnZ29vZ2xlLmNvbScpICYmXG4gICAgICAgIHBhcnNlZC5wYXRobmFtZS5zdGFydHNXaXRoKCcvbWFwcycpXG4gICAgICApIHtcbiAgICAgICAgaWYgKHBhcnNlZC5wYXRobmFtZS5pbmNsdWRlcygnL21hcHMvZW1iZWQnKSkgcmV0dXJuIHVybDtcblxuICAgICAgICByZXR1cm4gYGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9lbWJlZD8ke3BhcnNlZC5zZWFyY2hQYXJhbXMudG9TdHJpbmcoKX1gO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdXJsO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiB1cmw7XG4gICAgfVxuICB9XG5cbiAgLyoqIEJhc2ljIHNjcmlwdCB2YWxpZGF0aW9uIHRvIHByZXZlbnQgdW5zYWZlIG9wZXJhdGlvbnMgKi9cbiAgaXNTYWZlU2NyaXB0KGNvZGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHVuc2FmZVBhdHRlcm5zID0gW1xuICAgICAgL3dpbmRvd1xcLnBhcmVudC8sXG4gICAgICAvZG9jdW1lbnRcXC5jb29raWUvLFxuICAgICAgL2ZldGNoXFwoLyxcbiAgICAgIC9YTUxIdHRwUmVxdWVzdC8sXG4gICAgICAvZXZhbFxcKC8sXG4gICAgICAvbmV3IEZ1bmN0aW9uLyxcbiAgICAgIC9zZXRUaW1lb3V0fHNldEludGVydmFsLyxcbiAgICBdO1xuXG4gICAgcmV0dXJuICF1bnNhZmVQYXR0ZXJucy5zb21lKChwYXR0ZXJuKSA9PiBwYXR0ZXJuLnRlc3QoY29kZSkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY3VzdG9tLWVtYmVkIG1iLTRcIlxuICAgICBbc3R5bGUud2lkdGhdPVwid2lkdGhcIlxuICAgICBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodFwiPlxuXG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbnRlbnRUeXBlXCI+XG5cbiAgICA8IS0tIEhUTUwsIENTUywgYW5kIFNjcmlwdCByZW5kZXJlZCB0b2dldGhlciAtLT5cbiAgICA8aWZyYW1lXG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0hUTUwnXCJcbiAgICAgICNpZnJhbWVSZWZcbiAgICAgIHNhbmRib3g9XCJhbGxvdy1zY3JpcHRzIGFsbG93LXNhbWUtb3JpZ2luXCJcbiAgICAgIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiXG4gICAgICBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodFwiXG4gICAgICBmcmFtZWJvcmRlcj1cIjBcIlxuICAgID48L2lmcmFtZT5cblxuICAgIDwhLS0gTGluayBFbWJlZCAtLT5cbiAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ0xJTksnXCI+XG4gICAgIDxpZnJhbWVcbiAgICAgKm5nSWY9XCJzYWZlVXJsXCJcbiAgICAgW3NyY109XCJzYWZlVXJsXCJcbiAgICAgW3N0eWxlLndpZHRoXT1cIndpZHRoXCJcbiAgICAgW3N0eWxlLmhlaWdodF09XCJoZWlnaHRcIlxuICAgICBmcmFtZWJvcmRlcj1cIjBcIlxuICAgICBhbGxvd2Z1bGxzY3JlZW4+XG4gICA8L2lmcmFtZT5cbiAgICAgPC9kaXY+XG4gICAgXG5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
|