@nativescript/core 9.0.12-next.4 → 9.0.12-next.6

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/fetch/index.js DELETED
@@ -1,529 +0,0 @@
1
- const g = (typeof globalThis !== 'undefined' && globalThis) || (typeof self !== 'undefined' && self) || (typeof global !== 'undefined' && global) || {};
2
- const support = {
3
- searchParams: 'URLSearchParams' in g,
4
- iterable: 'Symbol' in g && 'iterator' in Symbol,
5
- blob: 'FileReader' in g &&
6
- 'Blob' in g &&
7
- (() => {
8
- try {
9
- new Blob();
10
- return true;
11
- }
12
- catch (e) {
13
- return false;
14
- }
15
- })(),
16
- formData: 'FormData' in g,
17
- arrayBuffer: 'ArrayBuffer' in g,
18
- };
19
- function isDataView(obj) {
20
- return obj && DataView.prototype.isPrototypeOf(obj);
21
- }
22
- let isArrayBufferView;
23
- if (support.arrayBuffer) {
24
- const viewClasses = ['[object Int8Array]', '[object Uint8Array]', '[object Uint8ClampedArray]', '[object Int16Array]', '[object Uint16Array]', '[object Int32Array]', '[object Uint32Array]', '[object Float32Array]', '[object Float64Array]'];
25
- isArrayBufferView =
26
- ArrayBuffer.isView ||
27
- ((obj) => {
28
- return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1;
29
- });
30
- }
31
- function normalizeName(name) {
32
- if (typeof name !== 'string') {
33
- name = String(name);
34
- }
35
- if (/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {
36
- throw new TypeError('Invalid character in header field name: "' + name + '"');
37
- }
38
- return name.toLowerCase();
39
- }
40
- function normalizeValue(value) {
41
- if (typeof value !== 'string') {
42
- value = String(value);
43
- }
44
- return value;
45
- }
46
- // Build a destructive iterator for the value list
47
- function iteratorFor(items) {
48
- const iterator = {
49
- next: () => {
50
- const value = items.shift();
51
- return { done: value === undefined, value };
52
- },
53
- };
54
- if (support.iterable) {
55
- iterator[Symbol.iterator] = () => iterator;
56
- }
57
- return iterator;
58
- }
59
- export class Headers {
60
- constructor(headers) {
61
- this.map = {};
62
- if (headers instanceof Headers) {
63
- headers.forEach((value, name) => {
64
- this.append(name, value);
65
- });
66
- }
67
- else if (Array.isArray(headers)) {
68
- headers.forEach((header) => {
69
- if (header.length !== 2) {
70
- throw new TypeError('Headers constructor: expected name/value pair to be length 2, found ' + header.length);
71
- }
72
- this.append(header[0], header[1]);
73
- });
74
- }
75
- else if (headers) {
76
- Object.getOwnPropertyNames(headers).forEach((name) => {
77
- this.append(name, headers[name]);
78
- });
79
- }
80
- }
81
- append(name, value) {
82
- name = normalizeName(name);
83
- value = normalizeValue(value);
84
- const oldValue = this.map[name];
85
- this.map[name] = oldValue ? oldValue + ', ' + value : value;
86
- }
87
- delete(name) {
88
- delete this.map[normalizeName(name)];
89
- }
90
- get(name) {
91
- name = normalizeName(name);
92
- return this.has(name) ? this.map[name] : null;
93
- }
94
- has(name) {
95
- return Object.prototype.hasOwnProperty.call(this.map, normalizeName(name));
96
- }
97
- set(name, value) {
98
- this.map[normalizeName(name)] = normalizeValue(value);
99
- }
100
- forEach(callback, thisArg) {
101
- for (const name in this.map) {
102
- if (Object.prototype.hasOwnProperty.call(this.map, name)) {
103
- callback.call(thisArg, this.map[name], name, this);
104
- }
105
- }
106
- }
107
- keys() {
108
- const items = [];
109
- this.forEach((_, name) => items.push(name));
110
- return iteratorFor(items);
111
- }
112
- values() {
113
- const items = [];
114
- this.forEach((value) => items.push(value));
115
- return iteratorFor(items);
116
- }
117
- entries() {
118
- const items = [];
119
- this.forEach((value, name) => items.push([name, value]));
120
- return iteratorFor(items);
121
- }
122
- [Symbol.iterator]() {
123
- return this.entries();
124
- }
125
- }
126
- // Body mixin
127
- export class Body {
128
- constructor() {
129
- this.bodyUsed = false;
130
- }
131
- _initBody(body) {
132
- // Ensure bodyUsed property exists
133
- this.bodyUsed = this.bodyUsed;
134
- this._bodyInit = body;
135
- if (!body) {
136
- this._noBody = true;
137
- this._bodyText = '';
138
- }
139
- else if (typeof body === 'string') {
140
- this._bodyText = body;
141
- }
142
- else if (support.blob && Blob.prototype.isPrototypeOf(body)) {
143
- this._bodyBlob = body;
144
- }
145
- else if (support.formData && FormData.prototype.isPrototypeOf(body)) {
146
- this._bodyFormData = body;
147
- }
148
- else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
149
- this._bodyText = body.toString();
150
- }
151
- else if (support.arrayBuffer && support.blob && isDataView(body)) {
152
- // @ts-ignore
153
- this._bodyArrayBuffer = bufferClone(body.buffer);
154
- this._bodyInit = new Blob([this._bodyArrayBuffer]);
155
- }
156
- else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {
157
- this._bodyArrayBuffer = bufferClone(body);
158
- }
159
- else {
160
- this._bodyText = body = Object.prototype.toString.call(body);
161
- }
162
- // Set Content-Type header if not set
163
- if (!this.headers.get('content-type')) {
164
- if (typeof body === 'string') {
165
- this.headers.set('content-type', 'text/plain;charset=UTF-8');
166
- }
167
- else if (this._bodyBlob && this._bodyBlob.type) {
168
- this.headers.set('content-type', this._bodyBlob.type);
169
- }
170
- else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
171
- this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
172
- }
173
- }
174
- }
175
- blob() {
176
- const rejected = consumed(this);
177
- if (rejected) {
178
- return rejected;
179
- }
180
- if (this._bodyBlob) {
181
- return Promise.resolve(this._bodyBlob);
182
- }
183
- else if (this._bodyArrayBuffer) {
184
- return Promise.resolve(new Blob([this._bodyArrayBuffer]));
185
- }
186
- else if (this._bodyFormData) {
187
- throw new Error('could not read FormData body as blob');
188
- }
189
- else {
190
- return Promise.resolve(new Blob([this._bodyText]));
191
- }
192
- }
193
- arrayBuffer() {
194
- if (this._bodyArrayBuffer) {
195
- const consumedResult = consumed(this);
196
- if (consumedResult) {
197
- return consumedResult;
198
- }
199
- else if (ArrayBuffer.isView(this._bodyArrayBuffer)) {
200
- return Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset, this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength));
201
- }
202
- else {
203
- return Promise.resolve(this._bodyArrayBuffer);
204
- }
205
- }
206
- else if (support.blob) {
207
- // @ts-ignore
208
- return this.blob().then(readBlobAsArrayBuffer);
209
- }
210
- else {
211
- throw new Error('could not read as ArrayBuffer');
212
- }
213
- }
214
- text() {
215
- const rejected = consumed(this);
216
- if (rejected) {
217
- return rejected;
218
- }
219
- if (this._bodyBlob) {
220
- return readBlobAsText(this._bodyBlob);
221
- }
222
- else if (this._bodyArrayBuffer) {
223
- return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer));
224
- }
225
- else if (this._bodyFormData) {
226
- throw new Error('could not read FormData body as text');
227
- }
228
- else {
229
- return Promise.resolve(this._bodyText);
230
- }
231
- }
232
- formData() {
233
- return this.text().then(decode);
234
- }
235
- json() {
236
- return this.text().then(JSON.parse);
237
- }
238
- }
239
- // Helper functions for Body
240
- function consumed(body) {
241
- if (body._noBody)
242
- return;
243
- if (body.bodyUsed) {
244
- return Promise.reject(new TypeError('Already read'));
245
- }
246
- body.bodyUsed = true;
247
- }
248
- function fileReaderReady(reader) {
249
- return new Promise((resolve, reject) => {
250
- reader.onload = () => resolve(reader.result);
251
- reader.onerror = () => reject(reader.error);
252
- });
253
- }
254
- function readBlobAsArrayBuffer(blob) {
255
- const reader = new FileReader();
256
- const promise = fileReaderReady(reader);
257
- reader.readAsArrayBuffer(blob);
258
- return promise;
259
- }
260
- function readBlobAsText(blob) {
261
- const reader = new FileReader();
262
- const promise = fileReaderReady(reader);
263
- const match = /charset=([A-Za-z0-9_-]+)/.exec(blob.type);
264
- const encoding = match ? match[1] : 'utf-8';
265
- reader.readAsText(blob, encoding);
266
- return promise;
267
- }
268
- function readArrayBufferAsText(buf) {
269
- const view = new Uint8Array(buf);
270
- const chars = new Array(view.length);
271
- for (let i = 0; i < view.length; i++) {
272
- chars[i] = String.fromCharCode(view[i]);
273
- }
274
- return chars.join('');
275
- }
276
- function bufferClone(buf) {
277
- if (buf.slice) {
278
- return buf.slice(0);
279
- }
280
- else {
281
- const view = new Uint8Array(buf.byteLength);
282
- view.set(new Uint8Array(buf));
283
- return view.buffer;
284
- }
285
- }
286
- // HTTP methods whose capitalization should be normalized
287
- const methods = ['CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE'];
288
- function normalizeMethod(method) {
289
- const upcased = method.toUpperCase();
290
- return methods.indexOf(upcased) > -1 ? upcased : method;
291
- }
292
- export class Request extends Body {
293
- constructor(input, options = {}) {
294
- super();
295
- let body = options.body;
296
- if (input instanceof Request) {
297
- if (input.bodyUsed) {
298
- throw new TypeError('Already read');
299
- }
300
- this.url = input.url;
301
- this.credentials = input.credentials;
302
- if (!options.headers) {
303
- this.headers = new Headers(input.headers);
304
- }
305
- this.method = input.method;
306
- this.mode = input.mode;
307
- this.signal = input.signal;
308
- if (!body && input._bodyInit != null) {
309
- body = input._bodyInit;
310
- input.bodyUsed = true;
311
- }
312
- }
313
- else {
314
- this.url = String(input);
315
- }
316
- this.credentials = options.credentials || this.credentials || 'same-origin';
317
- if (options.headers || !this.headers) {
318
- this.headers = new Headers(options.headers);
319
- }
320
- this.method = normalizeMethod(options.method || this.method || 'GET');
321
- this.mode = options.mode || this.mode || null;
322
- this.signal = options.signal || this.signal || ('AbortController' in g ? new AbortController().signal : undefined);
323
- this.referrer = null;
324
- if ((this.method === 'GET' || this.method === 'HEAD') && body) {
325
- throw new TypeError('Body not allowed for GET or HEAD requests');
326
- }
327
- this._initBody(body);
328
- if (this.method === 'GET' || this.method === 'HEAD') {
329
- if (options.cache === 'no-store' || options.cache === 'no-cache') {
330
- const reParamSearch = /([?&])_=[^&]*/;
331
- if (reParamSearch.test(this.url)) {
332
- this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());
333
- }
334
- else {
335
- const reQueryString = /\?/;
336
- this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();
337
- }
338
- }
339
- }
340
- }
341
- clone() {
342
- return new Request(this, { body: this._bodyInit });
343
- }
344
- }
345
- // Decode URL-encoded form data
346
- function decode(body) {
347
- const form = new FormData();
348
- body
349
- .trim()
350
- .split('&')
351
- .forEach((bytes) => {
352
- if (bytes) {
353
- const split = bytes.split('=');
354
- const name = split.shift().replace(/\+/g, ' ');
355
- const value = split.join('=').replace(/\+/g, ' ');
356
- form.append(decodeURIComponent(name), decodeURIComponent(value));
357
- }
358
- });
359
- return form;
360
- }
361
- // Parse raw headers string into Headers
362
- function parseHeaders(rawHeaders) {
363
- const headers = new Headers();
364
- const preProcessed = rawHeaders.replace(/\r?\n[\t ]+/g, ' ');
365
- preProcessed
366
- .split('\r')
367
- .map((header) => (header.indexOf('\n') === 0 ? header.substr(1) : header))
368
- .forEach((line) => {
369
- const parts = line.split(':');
370
- const key = parts.shift().trim();
371
- if (key) {
372
- const value = parts.join(':').trim();
373
- try {
374
- headers.append(key, value);
375
- }
376
- catch (err) {
377
- console.warn('Response ' + err.message);
378
- }
379
- }
380
- });
381
- return headers;
382
- }
383
- const redirectStatuses = [301, 302, 303, 307, 308];
384
- export class Response extends Body {
385
- constructor(bodyInit, options = {}) {
386
- super();
387
- this.type = 'default';
388
- this.status = options.status === undefined ? 200 : options.status;
389
- if (this.status < 200 || this.status > 599) {
390
- throw new RangeError(`Failed to construct 'Response': The status provided (${this.status}) is outside the range [200, 599].`);
391
- }
392
- this.ok = this.status >= 200 && this.status < 300;
393
- this.statusText = options.statusText === undefined ? '' : String(options.statusText);
394
- this.headers = new Headers(options.headers);
395
- this.url = options.url || '';
396
- this._initBody(bodyInit);
397
- }
398
- clone() {
399
- return new Response(this._bodyInit, {
400
- status: this.status,
401
- statusText: this.statusText,
402
- headers: new Headers(this.headers),
403
- url: this.url,
404
- });
405
- }
406
- static error() {
407
- const response = new Response(null, { status: 200, statusText: '' });
408
- response.ok = false;
409
- response.status = 0;
410
- response.type = 'error';
411
- return response;
412
- }
413
- static redirect(url, status) {
414
- if (!redirectStatuses.includes(status)) {
415
- throw new RangeError('Invalid status code');
416
- }
417
- return new Response(null, { status, headers: { location: url } });
418
- }
419
- }
420
- // DOMException polyfill
421
- export let DOMException = g.DOMException;
422
- try {
423
- new g.DOMException();
424
- }
425
- catch (err) {
426
- DOMException = class {
427
- constructor(message, name) {
428
- this.message = message;
429
- this.name = name;
430
- const error = new Error(message);
431
- this.stack = error.stack;
432
- }
433
- };
434
- }
435
- // fetch function
436
- export function fetch(input, init) {
437
- return new Promise((resolve, reject) => {
438
- const request = new Request(input, init);
439
- if (request.signal && request.signal.aborted) {
440
- return reject(new DOMException('Aborted', 'AbortError'));
441
- }
442
- const xhr = new XMLHttpRequest();
443
- function abortXhr() {
444
- xhr.abort();
445
- }
446
- xhr.onload = function () {
447
- const options = {
448
- statusText: xhr.statusText,
449
- headers: parseHeaders(xhr.getAllResponseHeaders() || ''),
450
- };
451
- // Local file handling
452
- if (request.url.startsWith('file://') && (xhr.status < 200 || xhr.status > 599)) {
453
- options.status = 200;
454
- }
455
- else {
456
- options.status = xhr.status;
457
- }
458
- options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');
459
- // @ts-ignore
460
- const body = 'response' in xhr ? xhr.response : xhr.responseText;
461
- setTimeout(() => resolve(new Response(body, options)), 0);
462
- };
463
- xhr.onerror = function () {
464
- setTimeout(() => reject(new TypeError('Network request failed')), 0);
465
- };
466
- xhr.ontimeout = function () {
467
- setTimeout(() => reject(new TypeError('Network request timed out')), 0);
468
- };
469
- xhr.onabort = function () {
470
- setTimeout(() => reject(new DOMException('Aborted', 'AbortError')), 0);
471
- };
472
- function fixUrl(url) {
473
- try {
474
- return url === '' && g.location.href ? g.location.href : url;
475
- }
476
- catch (e) {
477
- return url;
478
- }
479
- }
480
- xhr.open(request.method, fixUrl(request.url), true);
481
- if (request.credentials === 'include') {
482
- xhr.withCredentials = true;
483
- }
484
- else if (request.credentials === 'omit') {
485
- xhr.withCredentials = false;
486
- }
487
- if ('responseType' in xhr) {
488
- if (support.blob) {
489
- xhr.responseType = 'blob';
490
- }
491
- else if (support.arrayBuffer) {
492
- xhr.responseType = 'arraybuffer';
493
- }
494
- }
495
- if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers) && !(g.Headers && init.headers instanceof g.Headers)) {
496
- const names = [];
497
- Object.getOwnPropertyNames(init.headers).forEach((name) => {
498
- names.push(normalizeName(name));
499
- xhr.setRequestHeader(name, normalizeValue(init.headers[name]));
500
- });
501
- request.headers.forEach((value, name) => {
502
- if (!names.includes(name)) {
503
- xhr.setRequestHeader(name, value);
504
- }
505
- });
506
- }
507
- else {
508
- request.headers.forEach((value, name) => xhr.setRequestHeader(name, value));
509
- }
510
- if (request.signal) {
511
- request.signal.addEventListener('abort', abortXhr);
512
- xhr.onreadystatechange = function () {
513
- if (xhr.readyState === 4) {
514
- request.signal.removeEventListener('abort', abortXhr);
515
- }
516
- };
517
- }
518
- xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);
519
- });
520
- }
521
- // Attach polyfill to globals
522
- fetch.polyfill = true;
523
- if (!g.fetch) {
524
- g.fetch = fetch;
525
- g.Headers = Headers;
526
- g.Request = Request;
527
- g.Response = Response;
528
- }
529
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/core/fetch/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,GAAQ,CAAC,OAAO,UAAU,KAAK,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;AAU7J,MAAM,OAAO,GAAY;IACxB,YAAY,EAAE,iBAAiB,IAAI,CAAC;IACpC,QAAQ,EAAE,QAAQ,IAAI,CAAC,IAAI,UAAU,IAAI,MAAM;IAC/C,IAAI,EACH,YAAY,IAAI,CAAC;QACjB,MAAM,IAAI,CAAC;QACX,CAAC,GAAG,EAAE;YACL,IAAI,CAAC;gBACJ,IAAI,IAAI,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC;YACb,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,OAAO,KAAK,CAAC;YACd,CAAC;QACF,CAAC,CAAC,EAAE;IACL,QAAQ,EAAE,UAAU,IAAI,CAAC;IACzB,WAAW,EAAE,aAAa,IAAI,CAAC;CAC/B,CAAC;AAEF,SAAS,UAAU,CAAC,GAAQ;IAC3B,OAAO,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACrD,CAAC;AAED,IAAI,iBAAwC,CAAC;AAC7C,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IACzB,MAAM,WAAW,GAAG,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,uBAAuB,CAAC,CAAC;IAEhP,iBAAiB;QAChB,WAAW,CAAC,MAAM;YAClB,CAAC,CAAC,GAAQ,EAAE,EAAE;gBACb,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,IAAS;IAC/B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAC5D,MAAM,IAAI,SAAS,CAAC,2CAA2C,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,cAAc,CAAC,KAAU;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,kDAAkD;AAClD,SAAS,WAAW,CAAC,KAAY;IAChC,MAAM,QAAQ,GAAQ;QACrB,IAAI,EAAE,GAAG,EAAE;YACV,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5B,OAAO,EAAE,IAAI,EAAE,KAAK,KAAK,SAAS,EAAE,KAAK,EAAE,CAAC;QAC7C,CAAC;KACD,CAAC;IAEF,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,QAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC;IACrD,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAID,MAAM,OAAO,OAAO;IAGnB,YAAY,OAAoB;QAFxB,QAAG,GAA2B,EAAE,CAAC;QAGxC,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzB,MAAM,IAAI,SAAS,CAAC,sEAAsE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC7G,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACJ,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACpD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAG,OAAkC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,MAAM,CAAC,IAAY,EAAE,KAAa;QACjC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAC3B,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,GAAG,CAAC,IAAY;QACf,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;IAED,GAAG,CAAC,IAAY;QACf,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,KAAa;QAC9B,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,QAAiE,EAAE,OAAa;QACvF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC1D,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACpD,CAAC;QACF,CAAC;IACF,CAAC;IAED,IAAI;QACH,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM;QACL,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO;QACN,MAAM,KAAK,GAAuB,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACzD,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;CACD;AAED,aAAa;AACb,MAAM,OAAO,IAAI;IAAjB;QACC,aAAQ,GAAG,KAAK,CAAC;IA0GlB,CAAC;IAjGU,SAAS,CAAC,IAAS;QAC5B,kCAAkC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACrB,CAAC;aAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,SAAS,GAAG,IAAY,CAAC;QAC/B,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,aAAa,GAAG,IAAgB,CAAC;QACvC,CAAC;aAAM,IAAI,OAAO,CAAC,YAAY,IAAI,eAAe,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YAClF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,CAAC;aAAM,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACpE,aAAa;YACb,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAE,IAAiB,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC1G,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC,IAAmB,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YACvC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;YAC9D,CAAC;iBAAM,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBAClD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACvD,CAAC;iBAAM,IAAI,OAAO,CAAC,YAAY,IAAI,eAAe,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,iDAAiD,CAAC,CAAC;YACrF,CAAC;QACF,CAAC;IACF,CAAC;IAED,IAAI;QACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,QAAQ,EAAE,CAAC;YACd,OAAO,QAAwB,CAAC;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAClC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACP,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAU,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;IACF,CAAC;IAED,WAAW;QACV,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,cAAc,EAAE,CAAC;gBACpB,OAAO,cAA8B,CAAC;YACvC,CAAC;iBAAM,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACtD,OAAO,OAAO,CAAC,OAAO,CAAE,IAAI,CAAC,gBAAwB,CAAC,MAAM,CAAC,KAAK,CAAE,IAAI,CAAC,gBAAwB,CAAC,UAAU,EAAG,IAAI,CAAC,gBAAwB,CAAC,UAAU,GAAI,IAAI,CAAC,gBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC;YACvM,CAAC;iBAAM,CAAC;gBACP,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC/C,CAAC;QACF,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACzB,aAAa;YACb,OAAO,IAAI,CAAC,IAAK,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAClD,CAAC;IACF,CAAC;IAED,IAAI;QACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,QAAQ,EAAE,CAAC;YACd,OAAO,QAAwB,CAAC;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAClC,OAAO,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACtE,CAAC;aAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACP,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAU,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;IAED,QAAQ;QACP,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,IAAI;QACH,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;CACD;AAED,4BAA4B;AAC5B,SAAS,QAAQ,CAAC,IAAS;IAC1B,IAAI,IAAI,CAAC,OAAO;QAAE,OAAO;IACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACtB,CAAC;AAED,SAAS,eAAe,CAAC,MAAkB;IAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAU;IACxC,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,IAAU;IACjC,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5C,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClC,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAgB;IAC9C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,WAAW,CAAC,GAAgB;IACpC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACP,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;AACF,CAAC;AAED,yDAAyD;AACzD,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAEjG,SAAS,eAAe,CAAC,MAAc;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACrC,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;AACzD,CAAC;AAcD,MAAM,OAAO,OAAQ,SAAQ,IAAI;IAShC,YAAY,KAAkB,EAAE,UAAuB,EAAE;QACxD,KAAK,EAAE,CAAC;QACR,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAExB,IAAI,KAAK,YAAY,OAAO,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACpB,MAAM,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACtB,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC3B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC3B,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;gBACtC,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;gBACvB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACvB,CAAC;QACF,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,aAAa,CAAC;QAC5E,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACnH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YAC/D,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAErB,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACrD,IAAI,OAAO,CAAC,KAAK,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBAClE,MAAM,aAAa,GAAG,eAAe,CAAC;gBACtC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3E,CAAC;qBAAM,CAAC;oBACP,MAAM,aAAa,GAAG,IAAI,CAAC;oBAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBACtF,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,KAAK;QACJ,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACpD,CAAC;CACD;AAED,+BAA+B;AAC/B,SAAS,MAAM,CAAC,IAAY;IAC3B,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC5B,IAAI;SACF,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,CAAC;SACV,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAClB,IAAI,KAAK,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,CAAC;IACF,CAAC,CAAC,CAAC;IACJ,OAAO,IAAI,CAAC;AACb,CAAC;AAED,wCAAwC;AACxC,SAAS,YAAY,CAAC,UAAkB;IACvC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAC7D,YAAY;SACV,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SACzE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,GAAG,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YACrC,IAAI,CAAC;gBACJ,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC,WAAW,GAAI,GAAa,CAAC,OAAO,CAAC,CAAC;YACpD,CAAC;QACF,CAAC;IACF,CAAC,CAAC,CAAC;IACJ,OAAO,OAAO,CAAC;AAChB,CAAC;AAUD,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEnD,MAAM,OAAO,QAAS,SAAQ,IAAI;IAQjC,YAAY,QAAa,EAAE,UAAwB,EAAE;QACpD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAO,CAAC;QACnE,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC5C,MAAM,IAAI,UAAU,CAAC,wDAAwD,IAAI,CAAC,MAAM,oCAAoC,CAAC,CAAC;QAC/H,CAAC;QACD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrF,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK;QACJ,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE;YACnC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YAClC,GAAG,EAAE,IAAI,CAAC,GAAG;SACb,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK;QACX,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QACrE,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC;QACpB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACpB,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC;QACxB,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAW,EAAE,MAAc;QAC1C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,UAAU,CAAC,qBAAqB,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;CACD;AAED,wBAAwB;AACxB,MAAM,CAAC,IAAI,YAAY,GAAQ,CAAC,CAAC,YAAY,CAAC;AAC9C,IAAI,CAAC;IACJ,IAAK,CAAC,CAAC,YAAoB,EAAE,CAAC;AAC/B,CAAC;AAAC,OAAO,GAAG,EAAE,CAAC;IACd,YAAY,GAAG;QAId,YAAY,OAAe,EAAE,IAAY;YACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,CAAC;KACD,CAAC;AACH,CAAC;AAED,iBAAiB;AACjB,MAAM,UAAU,KAAK,CAAC,KAAkB,EAAE,IAAkB;IAC3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,IAAW,CAAC,CAAC;QAEhD,IAAI,OAAO,CAAC,MAAM,IAAK,OAAO,CAAC,MAAc,CAAC,OAAO,EAAE,CAAC;YACvD,OAAO,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;QAEjC,SAAS,QAAQ;YAChB,GAAG,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;QAED,GAAG,CAAC,MAAM,GAAG;YACZ,MAAM,OAAO,GAAQ;gBACpB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC;aACxD,CAAC;YACF,sBAAsB;YACtB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;gBACjF,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YAC7B,CAAC;YACD,OAAO,CAAC,GAAG,GAAG,aAAa,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC5F,aAAa;YACb,MAAM,IAAI,GAAG,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;YACjE,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC;QAEF,GAAG,CAAC,OAAO,GAAG;YACb,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC;QAEF,GAAG,CAAC,SAAS,GAAG;YACf,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC;QAEF,GAAG,CAAC,OAAO,GAAG;YACb,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC;QAEF,SAAS,MAAM,CAAC,GAAW;YAC1B,IAAI,CAAC;gBACJ,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YAC9D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,OAAO,GAAG,CAAC;YACZ,CAAC;QACF,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAEpD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACvC,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,CAAC;aAAM,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;YAC3C,GAAG,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,CAAC;QAED,IAAI,cAAc,IAAI,GAAG,EAAE,CAAC;YAC3B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,GAAW,CAAC,YAAY,GAAG,MAAM,CAAC;YACpC,CAAC;iBAAM,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBAC/B,GAAW,CAAC,YAAY,GAAG,aAAa,CAAC;YAC3C,CAAC;QACF,CAAC;QAED,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,YAAY,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YACzI,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAE,IAAI,CAAC,OAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzE,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACvC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3B,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACnC,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACnD,GAAG,CAAC,kBAAkB,GAAG;gBACxB,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;oBACzB,OAAO,CAAC,MAAc,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAChE,CAAC;YACF,CAAC,CAAC;QACH,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,6BAA6B;AAC5B,KAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC/B,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACd,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;IACpB,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;IACpB,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACvB,CAAC"}