1 | ;
|
2 | // tslint:disable:no-any
|
3 | // tslint:disable:no-unsafe-any
|
4 | // tslint:disable:max-classes-per-file
|
5 | Object.defineProperty(exports, "__esModule", { value: true });
|
6 | class InternalError extends Error {
|
7 | constructor(message) {
|
8 | super(message);
|
9 | // Required for TS 2.1, see
|
10 | // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
|
11 | Object.setPrototypeOf(this, InternalError.prototype);
|
12 | const nativeError = new Error(message);
|
13 | nativeError.name = 'InternalError';
|
14 | this._nativeError = nativeError;
|
15 | }
|
16 | get message() {
|
17 | return this._nativeError.message;
|
18 | }
|
19 | set message(message) {
|
20 | if (this._nativeError) {
|
21 | this._nativeError.message = message;
|
22 | }
|
23 | }
|
24 | get name() {
|
25 | return this._nativeError.name;
|
26 | }
|
27 | set name(name) {
|
28 | if (this._nativeError) {
|
29 | this._nativeError.name = name;
|
30 | }
|
31 | }
|
32 | get stack() {
|
33 | return this._nativeError.stack;
|
34 | }
|
35 | set stack(value) {
|
36 | if (this._nativeError) {
|
37 | this._nativeError.stack = value;
|
38 | }
|
39 | }
|
40 | toString() {
|
41 | return this._nativeError.toString();
|
42 | }
|
43 | }
|
44 | exports.InternalError = InternalError;
|
45 | class InvalidConfigError extends Error {
|
46 | constructor(message) {
|
47 | super(message);
|
48 | // Required for TS 2.1, see
|
49 | // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
|
50 | Object.setPrototypeOf(this, InvalidConfigError.prototype);
|
51 | const nativeError = new Error(message);
|
52 | nativeError.name = 'InvalidConfigError';
|
53 | this._nativeError = nativeError;
|
54 | }
|
55 | get message() {
|
56 | return this._nativeError.message;
|
57 | }
|
58 | set message(message) {
|
59 | if (this._nativeError) {
|
60 | this._nativeError.message = message;
|
61 | }
|
62 | }
|
63 | get name() {
|
64 | return this._nativeError.name;
|
65 | }
|
66 | set name(name) {
|
67 | if (this._nativeError) {
|
68 | this._nativeError.name = name;
|
69 | }
|
70 | }
|
71 | get stack() {
|
72 | return this._nativeError.stack;
|
73 | }
|
74 | set stack(value) {
|
75 | if (this._nativeError) {
|
76 | this._nativeError.stack = value;
|
77 | }
|
78 | }
|
79 | toString() {
|
80 | return this._nativeError.toString();
|
81 | }
|
82 | }
|
83 | exports.InvalidConfigError = InvalidConfigError;
|
84 | class InvalidOptionError extends Error {
|
85 | constructor(message) {
|
86 | super(message);
|
87 | // Required for TS 2.1, see
|
88 | // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
|
89 | Object.setPrototypeOf(this, InvalidOptionError.prototype);
|
90 | const nativeError = new Error(message);
|
91 | nativeError.name = 'InvalidOptionError';
|
92 | this._nativeError = nativeError;
|
93 | }
|
94 | get message() {
|
95 | return this._nativeError.message;
|
96 | }
|
97 | set message(message) {
|
98 | if (this._nativeError) {
|
99 | this._nativeError.message = message;
|
100 | }
|
101 | }
|
102 | get name() {
|
103 | return this._nativeError.name;
|
104 | }
|
105 | set name(name) {
|
106 | if (this._nativeError) {
|
107 | this._nativeError.name = name;
|
108 | }
|
109 | }
|
110 | get stack() {
|
111 | return this._nativeError.stack;
|
112 | }
|
113 | set stack(value) {
|
114 | if (this._nativeError) {
|
115 | this._nativeError.stack = value;
|
116 | }
|
117 | }
|
118 | toString() {
|
119 | return this._nativeError.toString();
|
120 | }
|
121 | }
|
122 | exports.InvalidOptionError = InvalidOptionError;
|
123 | class TypescriptCompileError extends Error {
|
124 | constructor(message) {
|
125 | super(message);
|
126 | // Required for TS 2.1, see
|
127 | // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
|
128 | Object.setPrototypeOf(this, TypescriptCompileError.prototype);
|
129 | const nativeError = new Error(message.message || message);
|
130 | nativeError.name = 'TypescriptCompileError';
|
131 | this._nativeError = nativeError;
|
132 | if (message.message && message.stack) {
|
133 | this.stack = message.stack;
|
134 | }
|
135 | }
|
136 | get message() {
|
137 | return this._nativeError.message;
|
138 | }
|
139 | set message(message) {
|
140 | if (this._nativeError) {
|
141 | this._nativeError.message = message;
|
142 | }
|
143 | }
|
144 | get name() {
|
145 | return this._nativeError.name;
|
146 | }
|
147 | set name(name) {
|
148 | if (this._nativeError) {
|
149 | this._nativeError.name = name;
|
150 | }
|
151 | }
|
152 | get stack() {
|
153 | return this._nativeError.stack;
|
154 | }
|
155 | set stack(value) {
|
156 | if (this._nativeError) {
|
157 | this._nativeError.stack = value;
|
158 | }
|
159 | }
|
160 | toString() {
|
161 | return this._nativeError.toString();
|
162 | }
|
163 | }
|
164 | exports.TypescriptCompileError = TypescriptCompileError;
|
165 | class UglifyError extends Error {
|
166 | constructor(message) {
|
167 | super(message);
|
168 | // Required for TS 2.1, see
|
169 | // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
|
170 | Object.setPrototypeOf(this, UglifyError.prototype);
|
171 | const nativeError = new Error(message);
|
172 | nativeError.name = 'UglifyError';
|
173 | this._nativeError = nativeError;
|
174 | }
|
175 | get message() {
|
176 | return this._nativeError.message;
|
177 | }
|
178 | set message(message) {
|
179 | if (this._nativeError) {
|
180 | this._nativeError.message = message;
|
181 | }
|
182 | }
|
183 | get name() {
|
184 | return this._nativeError.name;
|
185 | }
|
186 | set name(name) {
|
187 | if (this._nativeError) {
|
188 | this._nativeError.name = name;
|
189 | }
|
190 | }
|
191 | get stack() {
|
192 | return this._nativeError.stack;
|
193 | }
|
194 | set stack(value) {
|
195 | if (this._nativeError) {
|
196 | this._nativeError.stack = value;
|
197 | }
|
198 | }
|
199 | toString() {
|
200 | return this._nativeError.toString();
|
201 | }
|
202 | }
|
203 | exports.UglifyError = UglifyError;
|
204 | class UnSupportedStyleExtError extends Error {
|
205 | constructor(message) {
|
206 | super(message);
|
207 | // Required for TS 2.1, see
|
208 | // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
|
209 | Object.setPrototypeOf(this, UnSupportedStyleExtError.prototype);
|
210 | const nativeError = new Error(message);
|
211 | nativeError.name = 'UnSupportedStyleExtError';
|
212 | this._nativeError = nativeError;
|
213 | }
|
214 | get message() {
|
215 | return this._nativeError.message;
|
216 | }
|
217 | set message(message) {
|
218 | if (this._nativeError) {
|
219 | this._nativeError.message = message;
|
220 | }
|
221 | }
|
222 | get name() {
|
223 | return this._nativeError.name;
|
224 | }
|
225 | set name(name) {
|
226 | if (this._nativeError) {
|
227 | this._nativeError.name = name;
|
228 | }
|
229 | }
|
230 | get stack() {
|
231 | return this._nativeError.stack;
|
232 | }
|
233 | set stack(value) {
|
234 | if (this._nativeError) {
|
235 | this._nativeError.stack = value;
|
236 | }
|
237 | }
|
238 | toString() {
|
239 | return this._nativeError.toString();
|
240 | }
|
241 | }
|
242 | exports.UnSupportedStyleExtError = UnSupportedStyleExtError;
|
243 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiQzovcHJvamVjdHMvYW5ndWxhci1idWlsZC8iLCJzb3VyY2VzIjpbInNyYy9lcnJvci1tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUF3QjtBQUN4QiwrQkFBK0I7QUFDL0Isc0NBQXNDOztBQUV0QyxtQkFBMkIsU0FBUSxLQUFLO0lBR3BDLFlBQVksT0FBZTtRQUN2QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZiwyQkFBMkI7UUFDM0IsZ0lBQWdJO1FBQy9ILE1BQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU5RCxNQUFNLFdBQVcsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQWlCLENBQUM7UUFDdkQsV0FBVyxDQUFDLElBQUksR0FBRyxlQUFlLENBQUM7UUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7SUFDckMsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLE9BQWU7UUFDdkIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztTQUN2QztJQUNMLENBQUM7SUFDRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxJQUFZO1FBQ2pCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7U0FDakM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ0wsT0FBUSxJQUFJLENBQUMsWUFBb0IsQ0FBQyxLQUFLLENBQUM7SUFDNUMsQ0FB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QUcsT0FBTyxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQztJQUNELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLElBQVk7UUFDakIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztTQUNqQztJQUNMLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFDTCxPQUFRLElBQUksQ0FBQyxZQUFvQixDQUFDLEtBQUssQ0FBQztJQUM1QyxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBVTtRQUNoQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFlBQW9CLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztTQUM1QztJQUNMLENBQUM7SUFDRCxRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hDLENBQUM7Q0FDSjtBQXpDRCw0REF5Q0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZTpuby1hbnlcbi8vIHRzbGludDpkaXNhYmxlOm5vLXVuc2FmZS1hbnlcbi8vIHRzbGludDpkaXNhYmxlOm1heC1jbGFzc2VzLXBlci1maWxlXG5cbmV4cG9ydCBjbGFzcyBJbnRlcm5hbEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIHByaXZhdGUgX25hdGl2ZUVycm9yOiBFcnJvcjtcblxuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgLy8gUmVxdWlyZWQgZm9yIFRTIDIuMSwgc2VlXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvVHlwZVNjcmlwdC93aWtpL0JyZWFraW5nLUNoYW5nZXMjZXh0ZW5kaW5nLWJ1aWx0LWlucy1saWtlLWVycm9yLWFycmF5LWFuZC1tYXAtbWF5LW5vLWxvbmdlci13b3JrXG4gICAgICAgIChPYmplY3QgYXMgYW55KS5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnRlcm5hbEVycm9yLnByb3RvdHlwZSk7XG5cbiAgICAgICAgY29uc3QgbmF0aXZlRXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSkgYXMgYW55IGFzIEVycm9yO1xuICAgICAgICBuYXRpdmVFcnJvci5uYW1lID0gJ0ludGVybmFsRXJyb3InO1xuICAgICAgICB0aGlzLl9uYXRpdmVFcnJvciA9IG5hdGl2ZUVycm9yO1xuICAgIH1cblxuICAgIGdldCBtZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9uYXRpdmVFcnJvci5tZXNzYWdlO1xuICAgIH1cbiAgICBzZXQgbWVzc2FnZShtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuX25hdGl2ZUVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLl9uYXRpdmVFcnJvci5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbmF0aXZlRXJyb3IubmFtZTtcbiAgICB9XG4gICAgc2V0IG5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLl9uYXRpdmVFcnJvcikge1xuICAgICAgICAgICAgdGhpcy5fbmF0aXZlRXJyb3IubmFtZSA9IG5hbWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHN0YWNrKCk6IGFueSB7XG4gICAgICAgIHJldHVybiAodGhpcy5fbmF0aXZlRXJyb3IgYXMgYW55KS5zdGFjaztcbiAgICB9XG4gICAgc2V0IHN0YWNrKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuX25hdGl2ZUVycm9yKSB7XG4gICAgICAgICAgICAodGhpcy5fbmF0aXZlRXJyb3IgYXMgYW55KS5zdGFjayA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9uYXRpdmVFcnJvci50b1N0cmluZygpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEludmFsaWRDb25maWdFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9uYXRpdmVFcnJvcjogRXJyb3I7XG5cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG5cbiAgICAgICAgLy8gUmVxdWlyZWQgZm9yIFRTIDIuMSwgc2VlXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvVHlwZVNjcmlwdC93aWtpL0JyZWFraW5nLUNoYW5nZXMjZXh0ZW5kaW5nLWJ1aWx0LWlucy1saWtlLWVycm9yLWFycmF5LWFuZC1tYXAtbWF5LW5vLWxvbmdlci13b3JrXG4gICAgICAgIChPYmplY3QgYXMgYW55KS5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnZhbGlkQ29uZmlnRXJyb3IucHJvdG90eXBlKTtcblxuICAgICAgICBjb25zdCBuYXRpdmVFcnJvciA9IG5ldyBFcnJvcihtZXNzYWdlKSBhcyBhbnkgYXMgRXJyb3I7XG4gICAgICAgIG5hdGl2ZUVycm9yLm5hbWUgPSAnSW52YWxpZENvbmZpZ0Vycm9yJztcbiAgICAgICAgdGhpcy5fbmF0aXZlRXJyb3IgPSBuYXRpdmVFcnJvcjtcbiAgICB9XG5cbiAgICBnZXQgbWVzc2FnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbmF0aXZlRXJyb3IubWVzc2FnZTtcbiAgICB9XG4gICAgc2V0IG1lc3NhZ2UobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLl9uYXRpdmVFcnJvcikge1xuICAgICAgICAgICAgdGhpcy5fbmF0aXZlRXJyb3IubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25hdGl2ZUVycm9yLm5hbWU7XG4gICAgfVxuICAgIHNldCBuYW1lKG5hbWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5fbmF0aXZlRXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuX25hdGl2ZUVycm9yLm5hbWUgPSBuYW1lO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBzdGFjaygpOiBhbnkge1xuICAgICAgICByZXR1cm4gKHRoaXMuX25hdGl2ZUVycm9yIGFzIGFueSkuc3RhY2s7XG4gICAgfVxuICAgIHNldCBzdGFjayh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLl9uYXRpdmVFcnJvcikge1xuICAgICAgICAgICAgKHRoaXMuX25hdGl2ZUVycm9yIGFzIGFueSkuc3RhY2sgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbmF0aXZlRXJyb3IudG9TdHJpbmcoKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkT3B0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgcHJpdmF0ZSBfbmF0aXZlRXJyb3I6IEVycm9yO1xuXG4gICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICAvLyBSZXF1aXJlZCBmb3IgVFMgMi4xLCBzZWVcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L3dpa2kvQnJlYWtpbmctQ2hhbmdlcyNleHRlbmRpbmctYnVpbHQtaW5zLWxpa2UtZXJyb3ItYXJyYXktYW5kLW1hcC1tYXktbm8tbG9uZ2VyLXdvcmtcbiAgICAgICAgKE9iamVjdCBhcyBhbnkpLnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRPcHRpb25FcnJvci5wcm90b3R5cGUpO1xuXG4gICAgICAgIGNvbnN0IG5hdGl2ZUVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpIGFzIGFueSBhcyBFcnJvcjtcbiAgICAgICAgbmF0aXZlRXJyb3IubmFtZSA9ICdJbnZhbGlkT3B0aW9uRXJyb3InO1xuICAgICAgICB0aGlzLl9uYXRpdmVFcnJvciA9IG5hdGl2ZUVycm9yO1xuICAgIH1cblxuICAgIGdldCBtZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9uYXRpdmVFcnJvci5tZXNzYWdlO1xuICAgIH1cbiAgICBzZXQgbWVzc2FnZShtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuX25hdGl2ZUVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLl9uYXRpdmVFcnJvci5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbmF0aXZlRXJyb3IubmFtZTtcbiAgICB9XG4gICAgc2V0IG5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLl9uYXRpdmVFcnJvcikge1xuICAgICAgICAgICAgdGhpcy5fbmF0aXZlRXJyb3IubmFtZSA9IG5hbWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHN0YWNrKCk6IGFueSB7XG4gICAgICAgIHJldHVybiAodGhpcy5fbmF0aXZlRXJyb3IgYXMgYW55KS5zdGFjaztcbiAgICB9XG4gICAgc2V0IHN0YWNrKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuX25hdGl2ZUVycm9yKSB7XG4gICAgICAgICAgICAodGhpcy5fbmF0aXZlRXJyb3IgYXMgYW55KS5zdGFjayA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9uYXRpdmVFcnJvci50b1N0cmluZygpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFR5cGVzY3JpcHRDb21waWxlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgcHJpdmF0ZSBfbmF0aXZlRXJyb3I6IEVycm9yO1xuXG4gICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICAvLyBSZXF1aXJlZCBmb3IgVFMgMi4xLCBzZWVcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L3dpa2kvQnJlYWtpbmctQ2hhbmdlcyNleHRlbmRpbmctYnVpbHQtaW5zLWxpa2UtZXJyb3ItYXJyYXktYW5kLW1hcC1tYXktbm8tbG9uZ2VyLXdvcmtcbiAgICAgICAgKE9iamVjdCBhcyBhbnkpLnNldFByb3RvdHlwZU9mKHRoaXMsIFR5cGVzY3JpcHRDb21waWxlRXJyb3IucHJvdG90eXBlKTtcblxuICAgICAgICBjb25zdCBuYXRpdmVFcnJvciA9IG5ldyBFcnJvcigobWVzc2FnZSBhcyBhbnkpLm1lc3NhZ2UgfHwgbWVzc2FnZSkgYXMgYW55IGFzIEVycm9yO1xuICAgICAgICBuYXRpdmVFcnJvci5uYW1lID0gJ1R5cGVzY3JpcHRDb21waWxlRXJyb3InO1xuICAgICAgICB0aGlzLl9uYXRpdmVFcnJvciA9IG5hdGl2ZUVycm9yO1xuXG4gICAgICAgIGlmICgobWVzc2FnZSBhcyBhbnkpLm1lc3NhZ2UgJiYgKG1lc3NhZ2UgYXMgYW55KS5zdGFjaykge1xuICAgICAgICAgICAgdGhpcy5zdGFjayA9IChtZXNzYWdlIGFzIGFueSkuc3RhY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgbWVzc2FnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbmF0aXZlRXJyb3IubWVzc2FnZTtcbiAgICB9XG4gICAgc2V0IG1lc3NhZ2UobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLl9uYXRpdmVFcnJvcikge1xuICAgICAgICAgICAgdGhpcy5fbmF0aXZlRXJyb3IubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25hdGl2ZUVycm9yLm5hbWU7XG4gICAgfVxuICAgIHNldCBuYW1lKG5hbWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5fbmF0aXZlRXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuX25hdGl2ZUVycm9yLm5hbWUgPSBuYW1lO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBzdGFjaygpOiBhbnkge1xuICAgICAgICByZXR1cm4gKHRoaXMuX25hdGl2ZUVycm9yIGFzIGFueSkuc3RhY2s7XG4gICAgfVxuICAgIHNldCBzdGFjayh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLl9uYXRpdmVFcnJvcikge1xuICAgICAgICAgICAgKHRoaXMuX25hdGl2ZUVycm9yIGFzIGFueSkuc3RhY2sgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbmF0aXZlRXJyb3IudG9TdHJpbmcoKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVZ2xpZnlFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBwcml2YXRlIF9uYXRpdmVFcnJvcjogRXJyb3I7XG5cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgIC8vIFJlcXVpcmVkIGZvciBUUyAyLjEsIHNlZVxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L1R5cGVTY3JpcHQvd2lraS9CcmVha2luZy1DaGFuZ2VzI2V4dGVuZGluZy1idWlsdC1pbnMtbGlrZS1lcnJvci1hcnJheS1hbmQtbWFwLW1heS1uby1sb25nZXItd29ya1xuICAgICAgICAoT2JqZWN0IGFzIGFueSkuc2V0UHJvdG90eXBlT2YodGhpcywgVWdsaWZ5RXJyb3IucHJvdG90eXBlKTtcblxuICAgICAgICBjb25zdCBuYXRpdmVFcnJvciA9IG5ldyBFcnJvcihtZXNzYWdlKSBhcyBhbnkgYXMgRXJyb3I7XG4gICAgICAgIG5hdGl2ZUVycm9yLm5hbWUgPSAnVWdsaWZ5RXJyb3InO1xuICAgICAgICB0aGlzLl9uYXRpdmVFcnJvciA9IG5hdGl2ZUVycm9yO1xuICAgIH1cblxuICAgIGdldCBtZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9uYXRpdmVFcnJvci5tZXNzYWdlO1xuICAgIH1cbiAgICBzZXQgbWVzc2FnZShtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuX25hdGl2ZUVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLl9uYXRpdmVFcnJvci5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbmF0aXZlRXJyb3IubmFtZTtcbiAgICB9XG4gICAgc2V0IG5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLl9uYXRpdmVFcnJvcikge1xuICAgICAgICAgICAgdGhpcy5fbmF0aXZlRXJyb3IubmFtZSA9IG5hbWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHN0YWNrKCk6IGFueSB7XG4gICAgICAgIHJldHVybiAodGhpcy5fbmF0aXZlRXJyb3IgYXMgYW55KS5zdGFjaztcbiAgICB9XG4gICAgc2V0IHN0YWNrKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuX25hdGl2ZUVycm9yKSB7XG4gICAgICAgICAgICAodGhpcy5fbmF0aXZlRXJyb3IgYXMgYW55KS5zdGFjayA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9uYXRpdmVFcnJvci50b1N0cmluZygpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVuU3VwcG9ydGVkU3R5bGVFeHRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBwcml2YXRlIF9uYXRpdmVFcnJvcjogRXJyb3I7XG5cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgIC8vIFJlcXVpcmVkIGZvciBUUyAyLjEsIHNlZVxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L1R5cGVTY3JpcHQvd2lraS9CcmVha2luZy1DaGFuZ2VzI2V4dGVuZGluZy1idWlsdC1pbnMtbGlrZS1lcnJvci1hcnJheS1hbmQtbWFwLW1heS1uby1sb25nZXItd29ya1xuICAgICAgICAoT2JqZWN0IGFzIGFueSkuc2V0UHJvdG90eXBlT2YodGhpcywgVW5TdXBwb3J0ZWRTdHlsZUV4dEVycm9yLnByb3RvdHlwZSk7XG5cbiAgICAgICAgY29uc3QgbmF0aXZlRXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSkgYXMgYW55IGFzIEVycm9yO1xuICAgICAgICBuYXRpdmVFcnJvci5uYW1lID0gJ1VuU3VwcG9ydGVkU3R5bGVFeHRFcnJvcic7XG4gICAgICAgIHRoaXMuX25hdGl2ZUVycm9yID0gbmF0aXZlRXJyb3I7XG4gICAgfVxuXG4gICAgZ2V0IG1lc3NhZ2UoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25hdGl2ZUVycm9yLm1lc3NhZ2U7XG4gICAgfVxuICAgIHNldCBtZXNzYWdlKG1lc3NhZ2U6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5fbmF0aXZlRXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuX25hdGl2ZUVycm9yLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9uYXRpdmVFcnJvci5uYW1lO1xuICAgIH1cbiAgICBzZXQgbmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuX25hdGl2ZUVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLl9uYXRpdmVFcnJvci5uYW1lID0gbmFtZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgc3RhY2soKTogYW55IHtcbiAgICAgICAgcmV0dXJuICh0aGlzLl9uYXRpdmVFcnJvciBhcyBhbnkpLnN0YWNrO1xuICAgIH1cbiAgICBzZXQgc3RhY2sodmFsdWU6IGFueSkge1xuICAgICAgICBpZiAodGhpcy5fbmF0aXZlRXJyb3IpIHtcbiAgICAgICAgICAgICh0aGlzLl9uYXRpdmVFcnJvciBhcyBhbnkpLnN0YWNrID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25hdGl2ZUVycm9yLnRvU3RyaW5nKCk7XG4gICAgfVxufVxuIl19 |
\ | No newline at end of file |