{"version":3,"sources":["node_modules/@auth0/angular-jwt/fesm2020/auth0-angular-jwt.mjs","src/environments/environment.staging.ts","src/app/services/http/api.service.ts"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, Inject, NgModule, Optional, SkipSelf } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { map, mergeMap } from 'rxjs/operators';\nimport { defer, of } from 'rxjs';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nconst JWT_OPTIONS = new InjectionToken('JWT_OPTIONS');\n\n/* eslint-disable no-bitwise */\nclass JwtHelperService {\n constructor(config = null) {\n this.tokenGetter = config && config.tokenGetter || function () {};\n }\n urlBase64Decode(str) {\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0:\n {\n break;\n }\n case 2:\n {\n output += '==';\n break;\n }\n case 3:\n {\n output += '=';\n break;\n }\n default:\n {\n throw new Error('Illegal base64url string!');\n }\n }\n return this.b64DecodeUnicode(output);\n }\n // credits for decoder goes to https://github.com/atk\n b64decode(str) {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let output = '';\n str = String(str).replace(/=+$/, '');\n if (str.length % 4 === 1) {\n throw new Error(`'atob' failed: The string to be decoded is not correctly encoded.`);\n }\n for (\n // initialize result and counters\n let bc = 0, bs, buffer, idx = 0;\n // get next character\n buffer = str.charAt(idx++);\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n }\n b64DecodeUnicode(str) {\n return decodeURIComponent(Array.prototype.map.call(this.b64decode(str), c => {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n }\n decodeToken(token = this.tokenGetter()) {\n if (token instanceof Promise) {\n return token.then(t => this._decodeToken(t));\n }\n return this._decodeToken(token);\n }\n _decodeToken(token) {\n if (!token || token === '') {\n return null;\n }\n const parts = token.split('.');\n if (parts.length !== 3) {\n throw new Error(`The inspected token doesn't appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.`);\n }\n const decoded = this.urlBase64Decode(parts[1]);\n if (!decoded) {\n throw new Error('Cannot decode the token.');\n }\n return JSON.parse(decoded);\n }\n getTokenExpirationDate(token = this.tokenGetter()) {\n if (token instanceof Promise) {\n return token.then(t => this._getTokenExpirationDate(t));\n }\n return this._getTokenExpirationDate(token);\n }\n _getTokenExpirationDate(token) {\n let decoded;\n decoded = this.decodeToken(token);\n if (!decoded || !decoded.hasOwnProperty('exp')) {\n return null;\n }\n const date = new Date(0);\n date.setUTCSeconds(decoded.exp);\n return date;\n }\n isTokenExpired(token = this.tokenGetter(), offsetSeconds) {\n if (token instanceof Promise) {\n return token.then(t => this._isTokenExpired(t, offsetSeconds));\n }\n return this._isTokenExpired(token, offsetSeconds);\n }\n _isTokenExpired(token, offsetSeconds) {\n if (!token || token === '') {\n return true;\n }\n const date = this.getTokenExpirationDate(token);\n offsetSeconds = offsetSeconds || 0;\n if (date === null) {\n return false;\n }\n return !(date.valueOf() > new Date().valueOf() + offsetSeconds * 1000);\n }\n getAuthScheme(authScheme, request) {\n if (typeof authScheme === 'function') {\n return authScheme(request);\n }\n return authScheme;\n }\n}\nJwtHelperService.ɵfac = function JwtHelperService_Factory(t) {\n return new (t || JwtHelperService)(i0.ɵɵinject(JWT_OPTIONS));\n};\nJwtHelperService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: JwtHelperService,\n factory: JwtHelperService.ɵfac\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(JwtHelperService, [{\n type: Injectable\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [JWT_OPTIONS]\n }]\n }];\n }, null);\n})();\nconst fromPromiseOrValue = input => {\n if (input instanceof Promise) {\n return defer(() => input);\n }\n return of(input);\n};\nclass JwtInterceptor {\n constructor(config, jwtHelper, document) {\n this.jwtHelper = jwtHelper;\n this.document = document;\n this.standardPorts = ['80', '443'];\n this.tokenGetter = config.tokenGetter;\n this.headerName = config.headerName || 'Authorization';\n this.authScheme = config.authScheme || config.authScheme === '' ? config.authScheme : 'Bearer ';\n this.allowedDomains = config.allowedDomains || [];\n this.disallowedRoutes = config.disallowedRoutes || [];\n this.throwNoTokenError = config.throwNoTokenError || false;\n this.skipWhenExpired = config.skipWhenExpired;\n }\n isAllowedDomain(request) {\n const requestUrl = new URL(request.url, this.document.location.origin);\n // If the host equals the current window origin,\n // the domain is allowed by default\n if (requestUrl.host === this.document.location.host) {\n return true;\n }\n // If not the current domain, check the allowed list\n const hostName = `${requestUrl.hostname}${requestUrl.port && !this.standardPorts.includes(requestUrl.port) ? ':' + requestUrl.port : ''}`;\n return this.allowedDomains.findIndex(domain => typeof domain === 'string' ? domain === hostName : domain instanceof RegExp ? domain.test(hostName) : false) > -1;\n }\n isDisallowedRoute(request) {\n const requestedUrl = new URL(request.url, this.document.location.origin);\n return this.disallowedRoutes.findIndex(route => {\n if (typeof route === 'string') {\n const parsedRoute = new URL(route, this.document.location.origin);\n return parsedRoute.hostname === requestedUrl.hostname && parsedRoute.pathname === requestedUrl.pathname;\n }\n if (route instanceof RegExp) {\n return route.test(request.url);\n }\n return false;\n }) > -1;\n }\n handleInterception(token, request, next) {\n const authScheme = this.jwtHelper.getAuthScheme(this.authScheme, request);\n if (!token && this.throwNoTokenError) {\n throw new Error('Could not get token from tokenGetter function.');\n }\n let tokenIsExpired = of(false);\n if (this.skipWhenExpired) {\n tokenIsExpired = token ? fromPromiseOrValue(this.jwtHelper.isTokenExpired(token)) : of(true);\n }\n if (token) {\n return tokenIsExpired.pipe(map(isExpired => isExpired && this.skipWhenExpired ? request.clone() : request.clone({\n setHeaders: {\n [this.headerName]: `${authScheme}${token}`\n }\n })), mergeMap(innerRequest => next.handle(innerRequest)));\n }\n return next.handle(request);\n }\n intercept(request, next) {\n if (!this.isAllowedDomain(request) || this.isDisallowedRoute(request)) {\n return next.handle(request);\n }\n const token = this.tokenGetter(request);\n return fromPromiseOrValue(token).pipe(mergeMap(asyncToken => {\n return this.handleInterception(asyncToken, request, next);\n }));\n }\n}\nJwtInterceptor.ɵfac = function JwtInterceptor_Factory(t) {\n return new (t || JwtInterceptor)(i0.ɵɵinject(JWT_OPTIONS), i0.ɵɵinject(JwtHelperService), i0.ɵɵinject(DOCUMENT));\n};\nJwtInterceptor.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: JwtInterceptor,\n factory: JwtInterceptor.ɵfac\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(JwtInterceptor, [{\n type: Injectable\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [JWT_OPTIONS]\n }]\n }, {\n type: JwtHelperService\n }, {\n type: Document,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, null);\n})();\nclass JwtModule {\n constructor(parentModule) {\n if (parentModule) {\n throw new Error(`JwtModule is already loaded. It should only be imported in your application's main module.`);\n }\n }\n static forRoot(options) {\n return {\n ngModule: JwtModule,\n providers: [{\n provide: HTTP_INTERCEPTORS,\n useClass: JwtInterceptor,\n multi: true\n }, options.jwtOptionsProvider || {\n provide: JWT_OPTIONS,\n useValue: options.config\n }, JwtHelperService]\n };\n }\n}\nJwtModule.ɵfac = function JwtModule_Factory(t) {\n return new (t || JwtModule)(i0.ɵɵinject(JwtModule, 12));\n};\nJwtModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: JwtModule\n});\nJwtModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(JwtModule, [{\n type: NgModule\n }], function () {\n return [{\n type: JwtModule,\n decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }]\n }];\n }, null);\n})();\n\n/*\n * Public API Surface of angular-jwt\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { JWT_OPTIONS, JwtHelperService, JwtInterceptor, JwtModule };\n","export const environment = {\n apiUrl: 'https://ekan-stg.konelayansabah.com/app/api/',\n apiCommerceUrl: 'https://ekan-commerce.konelayansabah.com/api/',\n apiInventoryUrl: 'https://ekan-payment.konelayansabah.com/api/',\n version: 'v1',\n enable_glitchtip: false,\n glitchtip_dsn: \"\"\n};","import { Injectable } from '@angular/core';\nimport { environment } from '../../../environments/environment';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Subject } from 'rxjs';\nimport { JwtHelperService } from '@auth0/angular-jwt';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n private baseUrl = environment.apiUrl;\n private baseCommerceUrl = environment.apiCommerceUrl;\n private version = environment.version;\n\n private httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json; charset=utf-8'\n })\n };\n\n constructor(\n private http: HttpClient,\n private jwtHelper: JwtHelperService\n ) { }\n\n isTokenExpired = new Subject();\n\n checkTokenExpired() {\n const token = this.jwtHelper.tokenGetter().toString();\n if (token) {\n if (this.jwtHelper.isTokenExpired(token)) {\n this.isTokenExpired.next(true);\n return true\n } else {\n this.isTokenExpired.next(false);\n return false\n }\n } else {\n return\n }\n }\n\n\n // Authorizations\n login(payload: any) {\n return this.http.post(`${this.baseUrl}auth/public/login`, JSON.stringify(payload), this.httpOptions);\n }\n\n register(payload: any) {\n return this.http.post(`${this.baseUrl}auth/public/register`, JSON.stringify(payload), this.httpOptions);\n }\n\n loginBiometric(payload: any) {\n return this.http.post(`${this.baseUrl}auth/public/login/biometric`, JSON.stringify(payload), this.httpOptions);\n }\n\n registerBiometric() {\n return this.http.get(`${this.baseUrl}auth/public/register/biometric`, this.httpOptions);\n }\n\n changePassword(payload: any) {\n return this.http.post(`${this.baseUrl}auth/public/change_password`, JSON.stringify(payload), this.httpOptions);\n }\n\n getOTP() {\n return this.http.get(`${this.baseUrl}auth/public/otp`, this.httpOptions);\n }\n\n unhortenURL(payload: any) {\n\n return this.http.post(`${this.baseUrl}v1/seller/unshorten`, JSON.stringify(payload), this.httpOptions);\n }\n\n // GET\n getData(url: string) {\n return this.http.get(`${this.baseUrl}${this.version}${url}`, this.httpOptions);\n }\n\n getDataArray(url: string) {\n return this.http.get(`${this.baseUrl}${this.version}${url}`, this.httpOptions);\n }\n\n getReligions() {\n return this.http.get(`${this.baseUrl}v1/religions`, this.httpOptions);\n }\n\n getRaces() {\n return this.http.get(`${this.baseUrl}v1/races`, this.httpOptions);\n }\n\n getBusiness(id: number) {\n return this.http.get(`${this.baseUrl}v1/businesses/${id}`, this.httpOptions);\n }\n\n getDistricts() {\n return this.http.get(`${this.baseUrl}v1/districts`, this.httpOptions);\n }\n\n getBusinessCategories() {\n return this.http.get(`${this.baseUrl}v1/business_categories`, this.httpOptions);\n }\n\n getProductCategories() {\n return this.http.get(`${this.baseUrl}v1/product_categories`, this.httpOptions);\n }\n\n getReportSalesByYearAndBusinessId(year: string, business_id: string) {\n return this.http.get(`${this.baseUrl}${this.version}/reports/sales/business/${business_id}?year=${year}`, this.httpOptions);\n }\n\n getReportTopProductsByBusinessId(business_id: string) {\n\n return this.http.get(`${this.baseUrl}${this.version}/reports/top/products/business/${business_id}`, this.httpOptions);\n }\n\n getReportTopCustomersByBusinessId(business_id: string) {\n\n return this.http.get(`${this.baseUrl}${this.version}/reports/top/customers/business/${business_id}`, this.httpOptions);\n }\n\n getReportAccountHealth() {\n\n return this.http.get(`${this.baseUrl}${this.version}/reports/business/health`, this.httpOptions);\n }\n\n async downloadCustomers(user_id: string, token: string, counter: string) {\n this.checkTokenExpired();\n let url = `${this.baseUrl}${this.version}/reports/customers/download?user=${user_id}&token=${token}&counter=${counter}`;\n let popup = window.open(url, '_blank');\n if (popup) {\n await popup.focus;\n }\n return popup?.focus;\n }\n\n async downloadOrders(user_id: string, token: string, counter: string, year: number, month: number) {\n this.checkTokenExpired();\n let url = `${this.baseUrl}${this.version}/reports/orders/download?user=${user_id}&token=${token}&counter=${counter}&year=${year}&month=${month}`;\n let popup = window.open(url, '_blank');\n if (popup) {\n await popup.focus;\n }\n return popup?.focus;\n }\n\n // POST\n postData(url: string, payload: any) {\n return this.http.post(`${this.baseUrl}${this.version}${url}`, JSON.stringify(payload), this.httpOptions);\n }\n\n uploadPeopleFile(payload: any, formData: FormData) {\n\n const query = `${this.baseUrl}v1/attachments/upload/people`;\n const params = {\n is_person_cover_photo: payload.is_person_cover_photo,\n is_person_cover_photo_selected: payload.is_person_cover_photo_selected\n }\n const paramString = new URLSearchParams(params);\n return this.http.post(`${query}?${paramString}`, formData);\n }\n\n uploadBusinessFile(payload: any, formData: FormData) {\n\n const query = `${this.baseUrl}v1/attachments/upload/businesses`;\n const params = {\n business_id: payload.business_id,\n is_business_cover_photo: payload.is_business_cover_photo,\n is_business_cover_photo_selected: payload.is_business_cover_photo_selected\n }\n const paramString = new URLSearchParams(params);\n return this.http.post(`${query}?${paramString}`, formData);\n }\n\n uploadProductFile(payload: any, formData: FormData) {\n\n const query = `${this.baseUrl}v1/attachments/upload/products`;\n const params = {\n product_id: payload.product_id,\n is_product_cover_photo: payload.is_product_cover_photo,\n is_product_cover_photo_selected: payload.is_product_cover_photo_selected\n }\n const paramString = new URLSearchParams(params);\n return this.http.post(`${query}?${paramString}`, formData);\n }\n\n uploadOrderFile(payload: any, formData: FormData) {\n\n const query = `${this.baseUrl}v1/attachments/upload/orders`;\n const params = {\n order_id: payload.order_id,\n }\n const paramString = new URLSearchParams(params);\n return this.http.post(`${query}?${paramString}`, formData);\n }\n\n createBusiness(payload: any) {\n\n return this.http.post(`${this.baseUrl}v1/businesses`, JSON.stringify(payload), this.httpOptions);\n }\n\n createProduct(payload: any) {\n\n return this.http.post(`${this.baseUrl}v1/products`, JSON.stringify(payload), this.httpOptions);\n }\n\n // PUT\n putData(url: string, payload: any) {\n return this.http.put(`${this.baseUrl}${this.version}${url}`, JSON.stringify(payload), this.httpOptions);\n }\n\n updateCurrentUser(payload: any) {\n return this.http.put(`${this.baseUrl}v1/people`, JSON.stringify(payload), this.httpOptions);\n }\n\n updateBusiness(payload: any) {\n return this.http.put(`${this.baseUrl}v1/businesses`, JSON.stringify(payload), this.httpOptions);\n }\n\n setPeopleCoverPhoto(param: any) {\n\n const query = `${this.baseUrl}v1/attachments/people/set_cover_photo`;\n const params = {\n attachment_id: param.attachment_id,\n person_id: param.person_id\n }\n const paramString = new URLSearchParams(params);\n return this.http.put(`${query}?${paramString}`, this.httpOptions);\n }\n\n setBusinessCoverPhoto(param: any) {\n\n const query = `${this.baseUrl}v1/attachments/businesses/set_cover_photo`;\n const params = {\n attachment_id: param.attachment_id,\n business_id: param.business_id\n }\n const paramString = new URLSearchParams(params);\n return this.http.put(`${query}?${paramString}`, this.httpOptions);\n }\n\n setProductCoverPhoto(param: any) {\n\n const query = `${this.baseUrl}v1/attachments/product/set_cover_photo`;\n const params = {\n attachment_id: param.attachment_id,\n product_id: param.product_id\n }\n const paramString = new URLSearchParams(params);\n return this.http.put(`${query}?${paramString}`, this.httpOptions);\n }\n\n // DELETE\n deleteData(url: string) {\n\n return this.http.delete(`${this.baseUrl}${this.version}${url}`, this.httpOptions);\n }\n\n deleteAttachment(attachment_id: number) {\n\n return this.http.delete(`${this.baseUrl}${this.version}/attachments/${attachment_id}`, this.httpOptions);\n }\n\n\n //get ekan commerce\n getDataCommerce(url: string) {\n return this.http.get(`${this.baseCommerceUrl}${this.version}${url}`, this.httpOptions);\n }\n\n\n //post ekan commerce\n postDataCommerce(url: string, payload: any) {\n return this.http.post(`${this.baseCommerceUrl}${this.version}${url}`, JSON.stringify(payload), this.httpOptions);\n }\n\n\n //put ekan commerce\n putDataCommerce(url: string, payload: any) {\n return this.http.put(`${this.baseUrl}${this.version}${url}`, JSON.stringify(payload), this.httpOptions);\n }\n\n\n //delete ekan commerce\n deleteDataCommerce(url: string) {\n return this.http.delete(`${this.baseUrl}${this.version}${url}`, this.httpOptions);\n }\n\n\n\n //get ekan inventory\n getDataInventory(url: string) {\n return this.http.get(`${this.baseCommerceUrl}${this.version}${url}`, this.httpOptions);\n }\n\n\n //post ekan inventory\n postDataInventory(url: string, payload: any) {\n return this.http.post(`${this.baseCommerceUrl}${this.version}${url}`, JSON.stringify(payload), this.httpOptions);\n }\n\n\n //put ekan inventory\n putDataInventory(url: string, payload: any) {\n return this.http.put(`${this.baseUrl}${this.version}${url}`, JSON.stringify(payload), this.httpOptions);\n }\n\n\n //delete ekan inventory\n deleteDataInventory(url: string) {\n return this.http.delete(`${this.baseUrl}${this.version}${url}`, this.httpOptions);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAM,cAAc,IAAI,eAAe,aAAa;AAGpD,IAAM,mBAAN,MAAuB;AAAA,EACrB,YAAY,SAAS,MAAM;AACzB,SAAK,cAAc,UAAU,OAAO,eAAe,WAAY;AAAA,IAAC;AAAA,EAClE;AAAA,EACA,gBAAgB,KAAK;AACnB,QAAI,SAAS,IAAI,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG;AACrD,YAAQ,OAAO,SAAS,GAAG;AAAA,MACzB,KAAK,GACH;AACE;AAAA,MACF;AAAA,MACF,KAAK,GACH;AACE,kBAAU;AACV;AAAA,MACF;AAAA,MACF,KAAK,GACH;AACE,kBAAU;AACV;AAAA,MACF;AAAA,MACF,SACE;AACE,cAAM,IAAI,MAAM,2BAA2B;AAAA,MAC7C;AAAA,IACJ;AACA,WAAO,KAAK,iBAAiB,MAAM;AAAA,EACrC;AAAA;AAAA,EAEA,UAAU,KAAK;AACb,UAAM,QAAQ;AACd,QAAI,SAAS;AACb,UAAM,OAAO,GAAG,EAAE,QAAQ,OAAO,EAAE;AACnC,QAAI,IAAI,SAAS,MAAM,GAAG;AACxB,YAAM,IAAI,MAAM,mEAAmE;AAAA,IACrF;AACA;AAAA,UAEI,KAAK,GAAG,IAAI,QAAQ,MAAM;AAAA;AAAA,MAE9B,SAAS,IAAI,OAAO,KAAK;AAAA;AAAA,MAEzB,CAAC,WAAW,KAAK,KAAK,IAAI,KAAK,KAAK,SAAS;AAAA;AAAA,MAG7C,OAAO,KAAK,UAAU,OAAO,aAAa,MAAM,OAAO,KAAK,KAAK,EAAE,IAAI;AAAA,MAAG;AAExE,eAAS,MAAM,QAAQ,MAAM;AAAA,IAC/B;AACA,WAAO;AAAA,EACT;AAAA,EACA,iBAAiB,KAAK;AACpB,WAAO,mBAAmB,MAAM,UAAU,IAAI,KAAK,KAAK,UAAU,GAAG,GAAG,OAAK;AAC3E,aAAO,OAAO,OAAO,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE;AAAA,IAC7D,CAAC,EAAE,KAAK,EAAE,CAAC;AAAA,EACb;AAAA,EACA,YAAY,QAAQ,KAAK,YAAY,GAAG;AACtC,QAAI,iBAAiB,SAAS;AAC5B,aAAO,MAAM,KAAK,OAAK,KAAK,aAAa,CAAC,CAAC;AAAA,IAC7C;AACA,WAAO,KAAK,aAAa,KAAK;AAAA,EAChC;AAAA,EACA,aAAa,OAAO;AAClB,QAAI,CAAC,SAAS,UAAU,IAAI;AAC1B,aAAO;AAAA,IACT;AACA,UAAM,QAAQ,MAAM,MAAM,GAAG;AAC7B,QAAI,MAAM,WAAW,GAAG;AACtB,YAAM,IAAI,MAAM,wHAAwH;AAAA,IAC1I;AACA,UAAM,UAAU,KAAK,gBAAgB,MAAM,CAAC,CAAC;AAC7C,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,0BAA0B;AAAA,IAC5C;AACA,WAAO,KAAK,MAAM,OAAO;AAAA,EAC3B;AAAA,EACA,uBAAuB,QAAQ,KAAK,YAAY,GAAG;AACjD,QAAI,iBAAiB,SAAS;AAC5B,aAAO,MAAM,KAAK,OAAK,KAAK,wBAAwB,CAAC,CAAC;AAAA,IACxD;AACA,WAAO,KAAK,wBAAwB,KAAK;AAAA,EAC3C;AAAA,EACA,wBAAwB,OAAO;AAC7B,QAAI;AACJ,cAAU,KAAK,YAAY,KAAK;AAChC,QAAI,CAAC,WAAW,CAAC,QAAQ,eAAe,KAAK,GAAG;AAC9C,aAAO;AAAA,IACT;AACA,UAAM,OAAO,oBAAI,KAAK,CAAC;AACvB,SAAK,cAAc,QAAQ,GAAG;AAC9B,WAAO;AAAA,EACT;AAAA,EACA,eAAe,QAAQ,KAAK,YAAY,GAAG,eAAe;AACxD,QAAI,iBAAiB,SAAS;AAC5B,aAAO,MAAM,KAAK,OAAK,KAAK,gBAAgB,GAAG,aAAa,CAAC;AAAA,IAC/D;AACA,WAAO,KAAK,gBAAgB,OAAO,aAAa;AAAA,EAClD;AAAA,EACA,gBAAgB,OAAO,eAAe;AACpC,QAAI,CAAC,SAAS,UAAU,IAAI;AAC1B,aAAO;AAAA,IACT;AACA,UAAM,OAAO,KAAK,uBAAuB,KAAK;AAC9C,oBAAgB,iBAAiB;AACjC,QAAI,SAAS,MAAM;AACjB,aAAO;AAAA,IACT;AACA,WAAO,EAAE,KAAK,QAAQ,KAAI,oBAAI,KAAK,GAAE,QAAQ,IAAI,gBAAgB;AAAA,EACnE;AAAA,EACA,cAAc,YAAY,SAAS;AACjC,QAAI,OAAO,eAAe,YAAY;AACpC,aAAO,WAAW,OAAO;AAAA,IAC3B;AACA,WAAO;AAAA,EACT;AACF;AACA,iBAAiB,YAAO,SAAS,yBAAyB,GAAG;AAC3D,SAAO,KAAK,KAAK,kBAAqB,mBAAS,WAAW,CAAC;AAC7D;AACA,iBAAiB,aAAuB,gBAAG,6BAAmB;AAAA,EAC5D,OAAO;AAAA,EACP,SAAS,iBAAiB;AAC5B,CAAC;AAAA,CACA,MAAM;AACL,GAAC,OAAO,cAAc,eAAe,cAAiB,iBAAkB,kBAAkB,CAAC;AAAA,IACzF,MAAM;AAAA,EACR,CAAC,GAAG,WAAY;AACd,WAAO,CAAC;AAAA,MACN,MAAM;AAAA,MACN,YAAY,CAAC;AAAA,QACX,MAAM;AAAA,QACN,MAAM,CAAC,WAAW;AAAA,MACpB,CAAC;AAAA,IACH,CAAC;AAAA,EACH,GAAG,IAAI;AACT,GAAG;AACH,IAAM,qBAAqB,WAAS;AAClC,MAAI,iBAAiB,SAAS;AAC5B,WAAO,MAAM,MAAM,KAAK;AAAA,EAC1B;AACA,SAAO,GAAG,KAAK;AACjB;AACA,IAAM,iBAAN,MAAqB;AAAA,EACnB,YAAY,QAAQ,WAAW,UAAU;AACvC,SAAK,YAAY;AACjB,SAAK,WAAW;AAChB,SAAK,gBAAgB,CAAC,MAAM,KAAK;AACjC,SAAK,cAAc,OAAO;AAC1B,SAAK,aAAa,OAAO,cAAc;AACvC,SAAK,aAAa,OAAO,cAAc,OAAO,eAAe,KAAK,OAAO,aAAa;AACtF,SAAK,iBAAiB,OAAO,kBAAkB,CAAC;AAChD,SAAK,mBAAmB,OAAO,oBAAoB,CAAC;AACpD,SAAK,oBAAoB,OAAO,qBAAqB;AACrD,SAAK,kBAAkB,OAAO;AAAA,EAChC;AAAA,EACA,gBAAgB,SAAS;AACvB,UAAM,aAAa,IAAI,IAAI,QAAQ,KAAK,KAAK,SAAS,SAAS,MAAM;AAGrE,QAAI,WAAW,SAAS,KAAK,SAAS,SAAS,MAAM;AACnD,aAAO;AAAA,IACT;AAEA,UAAM,WAAW,GAAG,WAAW,QAAQ,GAAG,WAAW,QAAQ,CAAC,KAAK,cAAc,SAAS,WAAW,IAAI,IAAI,MAAM,WAAW,OAAO,EAAE;AACvI,WAAO,KAAK,eAAe,UAAU,YAAU,OAAO,WAAW,WAAW,WAAW,WAAW,kBAAkB,SAAS,OAAO,KAAK,QAAQ,IAAI,KAAK,IAAI;AAAA,EAChK;AAAA,EACA,kBAAkB,SAAS;AACzB,UAAM,eAAe,IAAI,IAAI,QAAQ,KAAK,KAAK,SAAS,SAAS,MAAM;AACvE,WAAO,KAAK,iBAAiB,UAAU,WAAS;AAC9C,UAAI,OAAO,UAAU,UAAU;AAC7B,cAAM,cAAc,IAAI,IAAI,OAAO,KAAK,SAAS,SAAS,MAAM;AAChE,eAAO,YAAY,aAAa,aAAa,YAAY,YAAY,aAAa,aAAa;AAAA,MACjG;AACA,UAAI,iBAAiB,QAAQ;AAC3B,eAAO,MAAM,KAAK,QAAQ,GAAG;AAAA,MAC/B;AACA,aAAO;AAAA,IACT,CAAC,IAAI;AAAA,EACP;AAAA,EACA,mBAAmB,OAAO,SAAS,MAAM;AACvC,UAAM,aAAa,KAAK,UAAU,cAAc,KAAK,YAAY,OAAO;AACxE,QAAI,CAAC,SAAS,KAAK,mBAAmB;AACpC,YAAM,IAAI,MAAM,gDAAgD;AAAA,IAClE;AACA,QAAI,iBAAiB,GAAG,KAAK;AAC7B,QAAI,KAAK,iBAAiB;AACxB,uBAAiB,QAAQ,mBAAmB,KAAK,UAAU,eAAe,KAAK,CAAC,IAAI,GAAG,IAAI;AAAA,IAC7F;AACA,QAAI,OAAO;AACT,aAAO,eAAe,KAAK,IAAI,eAAa,aAAa,KAAK,kBAAkB,QAAQ,MAAM,IAAI,QAAQ,MAAM;AAAA,QAC9G,YAAY;AAAA,UACV,CAAC,KAAK,UAAU,GAAG,GAAG,UAAU,GAAG,KAAK;AAAA,QAC1C;AAAA,MACF,CAAC,CAAC,GAAG,SAAS,kBAAgB,KAAK,OAAO,YAAY,CAAC,CAAC;AAAA,IAC1D;AACA,WAAO,KAAK,OAAO,OAAO;AAAA,EAC5B;AAAA,EACA,UAAU,SAAS,MAAM;AACvB,QAAI,CAAC,KAAK,gBAAgB,OAAO,KAAK,KAAK,kBAAkB,OAAO,GAAG;AACrE,aAAO,KAAK,OAAO,OAAO;AAAA,IAC5B;AACA,UAAM,QAAQ,KAAK,YAAY,OAAO;AACtC,WAAO,mBAAmB,KAAK,EAAE,KAAK,SAAS,gBAAc;AAC3D,aAAO,KAAK,mBAAmB,YAAY,SAAS,IAAI;AAAA,IAC1D,CAAC,CAAC;AAAA,EACJ;AACF;AACA,eAAe,YAAO,SAAS,uBAAuB,GAAG;AACvD,SAAO,KAAK,KAAK,gBAAmB,mBAAS,WAAW,GAAM,mBAAS,gBAAgB,GAAM,mBAAS,QAAQ,CAAC;AACjH;AACA,eAAe,aAAuB,gBAAG,6BAAmB;AAAA,EAC1D,OAAO;AAAA,EACP,SAAS,eAAe;AAC1B,CAAC;AAAA,CACA,MAAM;AACL,GAAC,OAAO,cAAc,eAAe,cAAiB,iBAAkB,gBAAgB,CAAC;AAAA,IACvF,MAAM;AAAA,EACR,CAAC,GAAG,WAAY;AACd,WAAO,CAAC;AAAA,MACN,MAAM;AAAA,MACN,YAAY,CAAC;AAAA,QACX,MAAM;AAAA,QACN,MAAM,CAAC,WAAW;AAAA,MACpB,CAAC;AAAA,IACH,GAAG;AAAA,MACD,MAAM;AAAA,IACR,GAAG;AAAA,MACD,MAAM;AAAA,MACN,YAAY,CAAC;AAAA,QACX,MAAM;AAAA,QACN,MAAM,CAAC,QAAQ;AAAA,MACjB,CAAC;AAAA,IACH,CAAC;AAAA,EACH,GAAG,IAAI;AACT,GAAG;AACH,IAAM,YAAN,MAAM,WAAU;AAAA,EACd,YAAY,cAAc;AACxB,QAAI,cAAc;AAChB,YAAM,IAAI,MAAM,4FAA4F;AAAA,IAC9G;AAAA,EACF;AAAA,EACA,OAAO,QAAQ,SAAS;AACtB,WAAO;AAAA,MACL,UAAU;AAAA,MACV,WAAW,CAAC;AAAA,QACV,SAAS;AAAA,QACT,UAAU;AAAA,QACV,OAAO;AAAA,MACT,GAAG,QAAQ,sBAAsB;AAAA,QAC/B,SAAS;AAAA,QACT,UAAU,QAAQ;AAAA,MACpB,GAAG,gBAAgB;AAAA,IACrB;AAAA,EACF;AACF;AACA,UAAU,YAAO,SAAS,kBAAkB,GAAG;AAC7C,SAAO,KAAK,KAAK,WAAc,mBAAS,WAAW,EAAE,CAAC;AACxD;AACA,UAAU,YAAsB,gBAAG,2BAAiB;AAAA,EAClD,MAAM;AACR,CAAC;AACD,UAAU,YAAsB,gBAAG,2BAAiB,CAAC,CAAC;AAAA,CACrD,MAAM;AACL,GAAC,OAAO,cAAc,eAAe,cAAiB,iBAAkB,WAAW,CAAC;AAAA,IAClF,MAAM;AAAA,EACR,CAAC,GAAG,WAAY;AACd,WAAO,CAAC;AAAA,MACN,MAAM;AAAA,MACN,YAAY,CAAC;AAAA,QACX,MAAM;AAAA,MACR,GAAG;AAAA,QACD,MAAM;AAAA,MACR,CAAC;AAAA,IACH,CAAC;AAAA,EACH,GAAG,IAAI;AACT,GAAG;;;AC5RI,IAAM,cAAc;EACvB,QAAQ;EACR,gBAAgB;EAChB,iBAAiB;EACjB,SAAS;EACT,kBAAkB;EAClB,eAAe;;;;ACGb,IAAO,aAAP,MAAO,YAAU;EAWrB,YACU,MACA,WAA2B;AAD3B,SAAA,OAAA;AACA,SAAA,YAAA;AAZF,SAAA,UAAU,YAAY;AACtB,SAAA,kBAAkB,YAAY;AAC9B,SAAA,UAAU,YAAY;AAEtB,SAAA,cAAc;MACpB,SAAS,IAAI,YAAY;QACvB,gBAAgB;OACjB;;AAQH,SAAA,iBAAiB,IAAI,QAAO;EAFxB;EAIJ,oBAAiB;AACf,UAAM,QAAQ,KAAK,UAAU,YAAW,EAAG,SAAQ;AACnD,QAAI,OAAO;AACT,UAAI,KAAK,UAAU,eAAe,KAAK,GAAG;AACxC,aAAK,eAAe,KAAK,IAAI;AAC7B,eAAO;aACF;AACL,aAAK,eAAe,KAAK,KAAK;AAC9B,eAAO;;WAEJ;AACL;;EAEJ;;EAIA,MAAM,SAAY;AAChB,WAAO,KAAK,KAAK,KAAU,GAAG,KAAK,OAAO,qBAAqB,KAAK,UAAU,OAAO,GAAG,KAAK,WAAW;EAC1G;EAEA,SAAS,SAAY;AACnB,WAAO,KAAK,KAAK,KAAU,GAAG,KAAK,OAAO,wBAAwB,KAAK,UAAU,OAAO,GAAG,KAAK,WAAW;EAC7G;EAEA,eAAe,SAAY;AACzB,WAAO,KAAK,KAAK,KAAU,GAAG,KAAK,OAAO,+BAA+B,KAAK,UAAU,OAAO,GAAG,KAAK,WAAW;EACpH;EAEA,oBAAiB;AACf,WAAO,KAAK,KAAK,IAAS,GAAG,KAAK,OAAO,kCAAkC,KAAK,WAAW;EAC7F;EAEA,eAAe,SAAY;AACzB,WAAO,KAAK,KAAK,KAAU,GAAG,KAAK,OAAO,+BAA+B,KAAK,UAAU,OAAO,GAAG,KAAK,WAAW;EACpH;EAEA,SAAM;AACJ,WAAO,KAAK,KAAK,IAAS,GAAG,KAAK,OAAO,mBAAmB,KAAK,WAAW;EAC9E;EAEA,YAAY,SAAY;AAEtB,WAAO,KAAK,KAAK,KAAU,GAAG,KAAK,OAAO,uBAAuB,KAAK,UAAU,OAAO,GAAG,KAAK,WAAW;EAC5G;;EAGA,QAAQ,KAAW;AACjB,WAAO,KAAK,KAAK,IAAS,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO,GAAG,GAAG,IAAI,KAAK,WAAW;EACpF;EAEA,aAAa,KAAW;AACtB,WAAO,KAAK,KAAK,IAAW,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO,GAAG,GAAG,IAAI,KAAK,WAAW;EACtF;EAEA,eAAY;AACV,WAAO,KAAK,KAAK,IAAW,GAAG,KAAK,OAAO,gBAAgB,KAAK,WAAW;EAC7E;EAEA,WAAQ;AACN,WAAO,KAAK,KAAK,IAAW,GAAG,KAAK,OAAO,YAAY,KAAK,WAAW;EACzE;EAEA,YAAY,IAAU;AACpB,WAAO,KAAK,KAAK,IAAS,GAAG,KAAK,OAAO,iBAAiB,EAAE,IAAI,KAAK,WAAW;EAClF;EAEA,eAAY;AACV,WAAO,KAAK,KAAK,IAAS,GAAG,KAAK,OAAO,gBAAgB,KAAK,WAAW;EAC3E;EAEA,wBAAqB;AACnB,WAAO,KAAK,KAAK,IAAS,GAAG,KAAK,OAAO,0BAA0B,KAAK,WAAW;EACrF;EAEA,uBAAoB;AAClB,WAAO,KAAK,KAAK,IAAS,GAAG,KAAK,OAAO,yBAAyB,KAAK,WAAW;EACpF;EAEA,kCAAkC,MAAc,aAAmB;AACjE,WAAO,KAAK,KAAK,IAAS,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO,2BAA2B,WAAW,SAAS,IAAI,IAAI,KAAK,WAAW;EACjI;EAEA,iCAAiC,aAAmB;AAElD,WAAO,KAAK,KAAK,IAAS,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO,kCAAkC,WAAW,IAAI,KAAK,WAAW;EAC3H;EAEA,kCAAkC,aAAmB;AAEnD,WAAO,KAAK,KAAK,IAAS,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO,mCAAmC,WAAW,IAAI,KAAK,WAAW;EAC5H;EAEA,yBAAsB;AAEpB,WAAO,KAAK,KAAK,IAAS,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO,4BAA4B,KAAK,WAAW;EACtG;EAEM,kBAAkB,SAAiB,OAAe,SAAe;;AACrE,WAAK,kBAAiB;AACtB,UAAI,MAAM,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO,oCAAoC,OAAO,UAAU,KAAK,YAAY,OAAO;AACrH,UAAI,QAAQ,OAAO,KAAK,KAAK,QAAQ;AACrC,UAAI,OAAO;AACT,cAAM,MAAM;;AAEd,aAAO,OAAO;IAChB;;EAEM,eAAe,SAAiB,OAAe,SAAiB,MAAc,OAAa;;AAC/F,WAAK,kBAAiB;AACtB,UAAI,MAAM,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO,iCAAiC,OAAO,UAAU,KAAK,YAAY,OAAO,SAAS,IAAI,UAAU,KAAK;AAC9I,UAAI,QAAQ,OAAO,KAAK,KAAK,QAAQ;AACrC,UAAI,OAAO;AACT,cAAM,MAAM;;AAEd,aAAO,OAAO;IAChB;;;EAGA,SAAS,KAAa,SAAY;AAChC,WAAO,KAAK,KAAK,KAAU,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO,GAAG,GAAG,IAAI,KAAK,UAAU,OAAO,GAAG,KAAK,WAAW;EAC9G;EAEA,iBAAiB,SAAc,UAAkB;AAE/C,UAAM,QAAQ,GAAG,KAAK,OAAO;AAC7B,UAAM,SAAS;MACb,uBAAuB,QAAQ;MAC/B,gCAAgC,QAAQ;;AAE1C,UAAM,cAAc,IAAI,gBAAgB,MAAM;AAC9C,WAAO,KAAK,KAAK,KAAU,GAAG,KAAK,IAAI,WAAW,IAAI,QAAQ;EAChE;EAEA,mBAAmB,SAAc,UAAkB;AAEjD,UAAM,QAAQ,GAAG,KAAK,OAAO;AAC7B,UAAM,SAAS;MACb,aAAa,QAAQ;MACrB,yBAAyB,QAAQ;MACjC,kCAAkC,QAAQ;;AAE5C,UAAM,cAAc,IAAI,gBAAgB,MAAM;AAC9C,WAAO,KAAK,KAAK,KAAU,GAAG,KAAK,IAAI,WAAW,IAAI,QAAQ;EAChE;EAEA,kBAAkB,SAAc,UAAkB;AAEhD,UAAM,QAAQ,GAAG,KAAK,OAAO;AAC7B,UAAM,SAAS;MACb,YAAY,QAAQ;MACpB,wBAAwB,QAAQ;MAChC,iCAAiC,QAAQ;;AAE3C,UAAM,cAAc,IAAI,gBAAgB,MAAM;AAC9C,WAAO,KAAK,KAAK,KAAU,GAAG,KAAK,IAAI,WAAW,IAAI,QAAQ;EAChE;EAEA,gBAAgB,SAAc,UAAkB;AAE9C,UAAM,QAAQ,GAAG,KAAK,OAAO;AAC7B,UAAM,SAAS;MACb,UAAU,QAAQ;;AAEpB,UAAM,cAAc,IAAI,gBAAgB,MAAM;AAC9C,WAAO,KAAK,KAAK,KAAU,GAAG,KAAK,IAAI,WAAW,IAAI,QAAQ;EAChE;EAEA,eAAe,SAAY;AAEzB,WAAO,KAAK,KAAK,KAAU,GAAG,KAAK,OAAO,iBAAiB,KAAK,UAAU,OAAO,GAAG,KAAK,WAAW;EACtG;EAEA,cAAc,SAAY;AAExB,WAAO,KAAK,KAAK,KAAU,GAAG,KAAK,OAAO,eAAe,KAAK,UAAU,OAAO,GAAG,KAAK,WAAW;EACpG;;EAGA,QAAQ,KAAa,SAAY;AAC/B,WAAO,KAAK,KAAK,IAAS,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO,GAAG,GAAG,IAAI,KAAK,UAAU,OAAO,GAAG,KAAK,WAAW;EAC7G;EAEA,kBAAkB,SAAY;AAC5B,WAAO,KAAK,KAAK,IAAW,GAAG,KAAK,OAAO,aAAa,KAAK,UAAU,OAAO,GAAG,KAAK,WAAW;EACnG;EAEA,eAAe,SAAY;AACzB,WAAO,KAAK,KAAK,IAAW,GAAG,KAAK,OAAO,iBAAiB,KAAK,UAAU,OAAO,GAAG,KAAK,WAAW;EACvG;EAEA,oBAAoB,OAAU;AAE5B,UAAM,QAAQ,GAAG,KAAK,OAAO;AAC7B,UAAM,SAAS;MACb,eAAe,MAAM;MACrB,WAAW,MAAM;;AAEnB,UAAM,cAAc,IAAI,gBAAgB,MAAM;AAC9C,WAAO,KAAK,KAAK,IAAS,GAAG,KAAK,IAAI,WAAW,IAAI,KAAK,WAAW;EACvE;EAEA,sBAAsB,OAAU;AAE9B,UAAM,QAAQ,GAAG,KAAK,OAAO;AAC7B,UAAM,SAAS;MACb,eAAe,MAAM;MACrB,aAAa,MAAM;;AAErB,UAAM,cAAc,IAAI,gBAAgB,MAAM;AAC9C,WAAO,KAAK,KAAK,IAAS,GAAG,KAAK,IAAI,WAAW,IAAI,KAAK,WAAW;EACvE;EAEA,qBAAqB,OAAU;AAE7B,UAAM,QAAQ,GAAG,KAAK,OAAO;AAC7B,UAAM,SAAS;MACb,eAAe,MAAM;MACrB,YAAY,MAAM;;AAEpB,UAAM,cAAc,IAAI,gBAAgB,MAAM;AAC9C,WAAO,KAAK,KAAK,IAAS,GAAG,KAAK,IAAI,WAAW,IAAI,KAAK,WAAW;EACvE;;EAGA,WAAW,KAAW;AAEpB,WAAO,KAAK,KAAK,OAAY,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO,GAAG,GAAG,IAAI,KAAK,WAAW;EACvF;EAEA,iBAAiB,eAAqB;AAEpC,WAAO,KAAK,KAAK,OAAY,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO,gBAAgB,aAAa,IAAI,KAAK,WAAW;EAC9G;;EAIA,gBAAgB,KAAW;AACzB,WAAO,KAAK,KAAK,IAAS,GAAG,KAAK,eAAe,GAAG,KAAK,OAAO,GAAG,GAAG,IAAI,KAAK,WAAW;EAC5F;;EAIA,iBAAiB,KAAa,SAAY;AACxC,WAAO,KAAK,KAAK,KAAU,GAAG,KAAK,eAAe,GAAG,KAAK,OAAO,GAAG,GAAG,IAAI,KAAK,UAAU,OAAO,GAAG,KAAK,WAAW;EACtH;;EAIA,gBAAgB,KAAa,SAAY;AACvC,WAAO,KAAK,KAAK,IAAS,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO,GAAG,GAAG,IAAI,KAAK,UAAU,OAAO,GAAG,KAAK,WAAW;EAC7G;;EAIA,mBAAmB,KAAW;AAC5B,WAAO,KAAK,KAAK,OAAY,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO,GAAG,GAAG,IAAI,KAAK,WAAW;EACvF;;EAKA,iBAAiB,KAAW;AAC1B,WAAO,KAAK,KAAK,IAAS,GAAG,KAAK,eAAe,GAAG,KAAK,OAAO,GAAG,GAAG,IAAI,KAAK,WAAW;EAC5F;;EAIA,kBAAkB,KAAa,SAAY;AACzC,WAAO,KAAK,KAAK,KAAU,GAAG,KAAK,eAAe,GAAG,KAAK,OAAO,GAAG,GAAG,IAAI,KAAK,UAAU,OAAO,GAAG,KAAK,WAAW;EACtH;;EAIA,iBAAiB,KAAa,SAAY;AACxC,WAAO,KAAK,KAAK,IAAS,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO,GAAG,GAAG,IAAI,KAAK,UAAU,OAAO,GAAG,KAAK,WAAW;EAC7G;;EAIA,oBAAoB,KAAW;AAC7B,WAAO,KAAK,KAAK,OAAY,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO,GAAG,GAAG,IAAI,KAAK,WAAW;EACvF;;;uBA5SW,aAAU,mBAAA,UAAA,GAAA,mBAAA,gBAAA,CAAA;IAAA;EAAA;;4EAAV,aAAU,SAAV,YAAU,WAAA,YAFT,OAAM,CAAA;EAAA;;","names":[],"x_google_ignoreList":[0]}