{"version":3,"sources":["webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/@theme/components/auth-layout/auth-layout.component.html","webpack:///./src/app/@theme/components/auth-layout/auth-layout.component.ts","webpack:///./src/app/@theme/components/footer/footer.component.scss","webpack:///./src/app/@theme/components/footer/footer.component.ts","webpack:///./src/app/@theme/components/header/CmpModel.ts","webpack:///./src/app/@theme/components/header/header.component.html","webpack:///./src/app/@theme/components/header/header.component.scss","webpack:///./src/app/@theme/components/header/header.component.ts","webpack:///./src/app/@theme/components/index.ts","webpack:///./src/app/@theme/layouts/index.ts","webpack:///./src/app/@theme/layouts/menu.ts","webpack:///./src/app/@theme/layouts/one-column/one-column.layout.scss","webpack:///./src/app/@theme/layouts/one-column/one-column.layout.ts","webpack:///./src/app/@theme/pipes/capitalize.pipe.ts","webpack:///./src/app/@theme/pipes/eva-icons.pipe.ts","webpack:///./src/app/@theme/pipes/index.ts","webpack:///./src/app/@theme/pipes/number-with-commas.pipe.ts","webpack:///./src/app/@theme/pipes/plural.pipe.ts","webpack:///./src/app/@theme/pipes/round.pipe.ts","webpack:///./src/app/@theme/pipes/timing.pipe.ts","webpack:///./src/app/@theme/services/layout.service.ts","webpack:///./src/app/@theme/services/users.service.ts","webpack:///./src/app/@theme/styles/theme.corporate.ts","webpack:///./src/app/@theme/theme.module.ts","webpack:///./src/app/ac-mod/AcmModel.ts","webpack:///./src/app/ac-mod/AcmService.ts","webpack:///./src/app/ac-mod/ac-address-dialog/ac-address-dialog.component.html","webpack:///./src/app/ac-mod/ac-address-dialog/ac-address-dialog.component.scss","webpack:///./src/app/ac-mod/ac-address-dialog/ac-address-dialog.component.ts","webpack:///./src/app/ac-mod/ac-short/ac-short.component.html","webpack:///./src/app/ac-mod/ac-short/ac-short.component.scss","webpack:///./src/app/ac-mod/ac-short/ac-short.component.ts","webpack:///./src/app/app-routing.module.ts","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.config.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/invoice/InvModel.ts","webpack:///./src/app/invoice/inv-filter/inv-filter.component.html","webpack:///./src/app/invoice/inv-filter/inv-filter.component.scss","webpack:///./src/app/invoice/inv-filter/inv-filter.component.ts","webpack:///./src/app/invoice/inv-form/inv-print-dialog.component.html","webpack:///./src/app/invoice/inv-form/inv-print-dialog.component.scss","webpack:///./src/app/invoice/inv-form/inv-print-dialog.component.ts","webpack:///./src/app/invoice/invoice.service.ts","webpack:///./src/app/lr-mod/LrModel.ts","webpack:///./src/app/masters/ct-create/ct-create.component.html","webpack:///./src/app/masters/ct-create/ct-create.component.ts","webpack:///./src/app/masters/masterModel.ts","webpack:///./src/app/masters/masters.service.ts","webpack:///./src/app/masters/mat-create/mat-create.component.html","webpack:///./src/app/masters/mat-create/mat-create.component.ts","webpack:///./src/app/masters/unit-create/unit-create.component.html","webpack:///./src/app/masters/unit-create/unit-create.component.ts","webpack:///./src/app/shared/components/branch-selection/branch-selection.component.html","webpack:///./src/app/shared/components/branch-selection/branch-selection.component.ts","webpack:///./src/app/shared/components/branch-selection/branch.service.ts","webpack:///./src/app/shared/components/dropdown/dropdown.component.html","webpack:///./src/app/shared/components/dropdown/dropdown.component.scss","webpack:///./src/app/shared/components/dropdown/dropdown.component.ts","webpack:///./src/app/shared/components/error-msg/error-msg.component.ts","webpack:///./src/app/shared/constants/error.constant.ts","webpack:///./src/app/shared/directives/numbers-only.directive.ts","webpack:///./src/app/shared/directives/validation.directive.ts","webpack:///./src/app/shared/service/auth-guard.service.ts","webpack:///./src/app/shared/service/common.service.ts","webpack:///./src/app/shared/service/data.service.ts","webpack:///./src/app/shared/service/interceptor.service.ts","webpack:///./src/app/shared/service/shared.service.ts","webpack:///./src/app/shared/shared.module.ts","webpack:///./src/app/vehicle/VhModel.ts","webpack:///./src/app/vehicle/vehicle.service.ts","webpack:///./src/app/vehicle/vh-form/vh-form.component.html","webpack:///./src/app/vehicle/vh-form/vh-form.component.scss","webpack:///./src/app/vehicle/vh-form/vh-form.component.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,qC;;;;;;;;;;;AClLA,sN;;;;;;;;;;;;;;;;;;;;;;;;ACAkD;AAOlD;IAEE;IAAgB,CAAC;IAEjB,sCAAQ,GAAR;IACA,CAAC;IALU,mBAAmB;QAL/B,+DAAS,CAAC;YACT,QAAQ,EAAE,iBAAiB;;SAE5B,CAAC;;OAEW,mBAAmB,CAO/B;IAAD,0BAAC;CAAA;AAP+B;;;;;;;;;;;;ACPhC,qoCAAqoC,+GAA+G,+CAA+C,EAAE,eAAe,KAAK,GAAG,6CAA6C,iBAAiB,yBAAyB,k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","file":"main.js","sourcesContent":["var map = {\n\t\"./ac-mod/ac-mod.module\": [\n\t\t\"./src/app/ac-mod/ac-mod.module.ts\",\n\t\t\"default~ac-mod-ac-mod-module~chln-mod-chln-mod-module~drv-drv-module~employee-employee-module~invoic~ffa7cd74\",\n\t\t\"default~ac-mod-ac-mod-module~trad-invoice-trad-invoice-module\",\n\t\t\"common\",\n\t\t\"ac-mod-ac-mod-module\"\n\t],\n\t\"./authentication/authentication.module\": [\n\t\t\"./src/app/authentication/authentication.module.ts\",\n\t\t\"common\",\n\t\t\"authentication-authentication-module\"\n\t],\n\t\"./chalan-management/chalan-management.module\": [\n\t\t\"./src/app/chalan-management/chalan-management.module.ts\",\n\t\t\"chalan-management-chalan-management-module\"\n\t],\n\t\"./chln-mod/chln-mod.module\": [\n\t\t\"./src/app/chln-mod/chln-mod.module.ts\",\n\t\t\"default~ac-mod-ac-mod-module~chln-mod-chln-mod-module~drv-drv-module~employee-employee-module~invoic~ffa7cd74\",\n\t\t\"default~chln-mod-chln-mod-module~lr-mod-lr-mod-module~trip-sheet-trip-sheet-module\",\n\t\t\"common\",\n\t\t\"chln-mod-chln-mod-module\"\n\t],\n\t\"./drv/drv.module\": [\n\t\t\"./src/app/drv/drv.module.ts\",\n\t\t\"default~ac-mod-ac-mod-module~chln-mod-chln-mod-module~drv-drv-module~employee-employee-module~invoic~ffa7cd74\",\n\t\t\"common\",\n\t\t\"drv-drv-module\"\n\t],\n\t\"./employee/employee.module\": [\n\t\t\"./src/app/employee/employee.module.ts\",\n\t\t\"default~ac-mod-ac-mod-module~chln-mod-chln-mod-module~drv-drv-module~employee-employee-module~invoic~ffa7cd74\",\n\t\t\"common\",\n\t\t\"employee-employee-module\"\n\t],\n\t\"./invoice/invoice.module\": [\n\t\t\"./src/app/invoice/invoice.module.ts\",\n\t\t\"default~ac-mod-ac-mod-module~chln-mod-chln-mod-module~drv-drv-module~employee-employee-module~invoic~ffa7cd74\",\n\t\t\"default~invoice-invoice-module~trad-invoice-trad-invoice-module~user-management-user-management-modu~06fd4f08\",\n\t\t\"common\",\n\t\t\"invoice-invoice-module\"\n\t],\n\t\"./lr-management/lr-management.module\": [\n\t\t\"./src/app/lr-management/lr-management.module.ts\",\n\t\t\"default~lr-management-lr-management-module~master-management-master-management-module\",\n\t\t\"common\",\n\t\t\"lr-management-lr-management-module\"\n\t],\n\t\"./lr-mod/lr-mod.module\": [\n\t\t\"./src/app/lr-mod/lr-mod.module.ts\",\n\t\t\"default~ac-mod-ac-mod-module~chln-mod-chln-mod-module~drv-drv-module~employee-employee-module~invoic~ffa7cd74\",\n\t\t\"default~chln-mod-chln-mod-module~lr-mod-lr-mod-module~trip-sheet-trip-sheet-module\",\n\t\t\"default~lr-mod-lr-mod-module~recursive-recursive-module\",\n\t\t\"common\",\n\t\t\"lr-mod-lr-mod-module\"\n\t],\n\t\"./master-management/master-management.module\": [\n\t\t\"./src/app/master-management/master-management.module.ts\",\n\t\t\"default~lr-management-lr-management-module~master-management-master-management-module\",\n\t\t\"common\"\n\t],\n\t\"./masters/masters.module\": [\n\t\t\"./src/app/masters/masters.module.ts\",\n\t\t\"common\",\n\t\t\"masters-masters-module\"\n\t],\n\t\"./mat-delivery/mat-delivery.module\": [\n\t\t\"./src/app/mat-delivery/mat-delivery.module.ts\",\n\t\t\"default~ac-mod-ac-mod-module~chln-mod-chln-mod-module~drv-drv-module~employee-employee-module~invoic~ffa7cd74\",\n\t\t\"common\",\n\t\t\"mat-delivery-mat-delivery-module\"\n\t],\n\t\"./money-receipt/money-receipt.module\": [\n\t\t\"./src/app/money-receipt/money-receipt.module.ts\",\n\t\t\"default~ac-mod-ac-mod-module~chln-mod-chln-mod-module~drv-drv-module~employee-employee-module~invoic~ffa7cd74\",\n\t\t\"default~money-receipt-money-receipt-module~mrs-mrs-module\",\n\t\t\"common\",\n\t\t\"money-receipt-money-receipt-module\"\n\t],\n\t\"./mrs/mrs.module\": [\n\t\t\"./src/app/mrs/mrs.module.ts\",\n\t\t\"default~ac-mod-ac-mod-module~chln-mod-chln-mod-module~drv-drv-module~employee-employee-module~invoic~ffa7cd74\",\n\t\t\"default~money-receipt-money-receipt-module~mrs-mrs-module\",\n\t\t\"common\",\n\t\t\"mrs-mrs-module\"\n\t],\n\t\"./my-print/my-print.module\": [\n\t\t\"./src/app/my-print/my-print.module.ts\",\n\t\t\"my-print-my-print-module\"\n\t],\n\t\"./recursive/recursive.module\": [\n\t\t\"./src/app/recursive/recursive.module.ts\",\n\t\t\"default~lr-mod-lr-mod-module~recursive-recursive-module\",\n\t\t\"common\",\n\t\t\"recursive-recursive-module\"\n\t],\n\t\"./trad-invoice/trad-invoice.module\": [\n\t\t\"./src/app/trad-invoice/trad-invoice.module.ts\",\n\t\t\"default~ac-mod-ac-mod-module~chln-mod-chln-mod-module~drv-drv-module~employee-employee-module~invoic~ffa7cd74\",\n\t\t\"default~invoice-invoice-module~trad-invoice-trad-invoice-module~user-management-user-management-modu~06fd4f08\",\n\t\t\"default~ac-mod-ac-mod-module~trad-invoice-trad-invoice-module\",\n\t\t\"common\",\n\t\t\"trad-invoice-trad-invoice-module\"\n\t],\n\t\"./trip-sheet/trip-sheet.module\": [\n\t\t\"./src/app/trip-sheet/trip-sheet.module.ts\",\n\t\t\"default~ac-mod-ac-mod-module~chln-mod-chln-mod-module~drv-drv-module~employee-employee-module~invoic~ffa7cd74\",\n\t\t\"default~chln-mod-chln-mod-module~lr-mod-lr-mod-module~trip-sheet-trip-sheet-module\",\n\t\t\"common\",\n\t\t\"trip-sheet-trip-sheet-module\"\n\t],\n\t\"./unloading/unloading.module\": [\n\t\t\"./src/app/unloading/unloading.module.ts\",\n\t\t\"default~ac-mod-ac-mod-module~chln-mod-chln-mod-module~drv-drv-module~employee-employee-module~invoic~ffa7cd74\",\n\t\t\"common\",\n\t\t\"unloading-unloading-module\"\n\t],\n\t\"./user-management/user-management.module\": [\n\t\t\"./src/app/user-management/user-management.module.ts\",\n\t\t\"default~ac-mod-ac-mod-module~chln-mod-chln-mod-module~drv-drv-module~employee-employee-module~invoic~ffa7cd74\",\n\t\t\"default~invoice-invoice-module~trad-invoice-trad-invoice-module~user-management-user-management-modu~06fd4f08\",\n\t\t\"common\",\n\t\t\"user-management-user-management-module\"\n\t],\n\t\"./vehicle/vehicle.module\": [\n\t\t\"./src/app/vehicle/vehicle.module.ts\",\n\t\t\"default~ac-mod-ac-mod-module~chln-mod-chln-mod-module~drv-drv-module~employee-employee-module~invoic~ffa7cd74\",\n\t\t\"common\",\n\t\t\"vehicle-vehicle-module\"\n\t],\n\t\"./vh-maintenance/vh-maintenance.module\": [\n\t\t\"./src/app/vh-maintenance/vh-maintenance.module.ts\",\n\t\t\"default~ac-mod-ac-mod-module~chln-mod-chln-mod-module~drv-drv-module~employee-employee-module~invoic~ffa7cd74\",\n\t\t\"common\",\n\t\t\"vh-maintenance-vh-maintenance-module\"\n\t],\n\t\"./vh-parts/vh-parts.module\": [\n\t\t\"./src/app/vh-parts/vh-parts.module.ts\",\n\t\t\"common\",\n\t\t\"vh-parts-vh-parts-module\"\n\t],\n\t\"./view-management/view-management.module\": [\n\t\t\"./src/app/view-management/view-management.module.ts\",\n\t\t\"common\",\n\t\t\"view-management-view-management-module\"\n\t],\n\t\"./voucher-gen/voucher-gen.module\": [\n\t\t\"./src/app/voucher-gen/voucher-gen.module.ts\",\n\t\t\"default~ac-mod-ac-mod-module~chln-mod-chln-mod-module~drv-drv-module~employee-employee-module~invoic~ffa7cd74\",\n\t\t\"common\",\n\t\t\"voucher-gen-voucher-gen-module\"\n\t],\n\t\"./vr-collection/vr-collection.module\": [\n\t\t\"./src/app/vr-collection/vr-collection.module.ts\",\n\t\t\"default~ac-mod-ac-mod-module~chln-mod-chln-mod-module~drv-drv-module~employee-employee-module~invoic~ffa7cd74\",\n\t\t\"common\",\n\t\t\"vr-collection-vr-collection-module\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\tvar id = ids[0];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";\nmodule.exports = webpackAsyncContext;","module.exports = \"\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'ngx-auth-layout',\n templateUrl: './auth-layout.component.html',\n})\n\nexport class AuthLayoutComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \"/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This is a starting point where we declare the maps of themes and globally available functions/mixins\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This mixin generates keyfames.\\n * Because of all keyframes can't be scoped,\\n * we need to puts unique name in each btn-pulse call.\\n */\\n/*\\n\\nAccording to the specification (https://www.w3.org/TR/css-scoping-1/#host-selector)\\n:host and :host-context are pseudo-classes. So we assume they could be combined,\\nlike other pseudo-classes, even same ones.\\nFor example: ':nth-of-type(2n):nth-of-type(even)'.\\n\\nIdeal solution would be to prepend any selector with :host-context([dir=rtl]).\\nThen nebular components will behave as an html element and respond to [dir] attribute on any level,\\nso direction could be overridden on any component level.\\n\\nImplementation code:\\n\\n@mixin nb-rtl() {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n @at-root {selector-append(':host-context([dir=rtl])', &)} {\\n @content;\\n }\\n}\\n\\nAnd when we call it somewhere:\\n\\n:host {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n:host-context(...) {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n\\nResult will look like:\\n\\n:host-context([dir=rtl]):host .some-class {\\n ...\\n}\\n:host-context([dir=rtl]):host-context(...) .some-class {\\n ...\\n}\\n\\n*\\n Side note:\\n :host-context():host selector are valid. https://lists.w3.org/Archives/Public/www-style/2015Feb/0305.html\\n\\n :host-context([dir=rtl]):host-context(...) should match any permutation,\\n so order is not important.\\n*\\n\\n\\nCurrently, there're two problems with this approach:\\n\\nFirst, is that we can't combine :host, :host-context. Angular bugs #14349, #19199.\\nFor the moment of writing, the only possible way is:\\n:host {\\n :host-context(...) {\\n ...\\n }\\n}\\nIt doesn't work for us because mixin could be called somewhere deeper, like:\\n:host {\\n p {\\n @include nb-rtl() { ... }\\n }\\n}\\nWe are not able to go up to :host level to place content passed to mixin.\\n\\nThe second problem is that we only can be sure that we appending :host-context([dir=rtl]) to another\\n:host/:host-context pseudo-class when called in theme files (*.theme.scss).\\n *\\n Side note:\\n Currently, nb-install-component uses another approach where :host prepended with the theme name\\n (https://github.com/angular/angular/blob/5b96078624b0a4760f2dbcf6fdf0bd62791be5bb/packages/compiler/src/shadow_css.ts#L441),\\n but it was made to be able to use current realization of rtl and it can be rewritten back to\\n :host-context($theme) once we will be able to use multiple shadow selectors.\\n *\\nBut when it's called in *.component.scss we can't be sure, that selector starts with :host/:host-context,\\nbecause angular allows omitting pseudo-classes if we don't need to style :host component itself.\\nWe can break such selectors, by just appending :host-context([dir=rtl]) to them.\\n ***\\n Possible solution\\n check if we in theme by some theme variables and if so append, otherwise nest like\\n @at-root :host-context([dir=rtl]) {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n {&} {\\n @content;\\n }\\n }\\n What if :host specified? Can we add space in :host-context(...) :host?\\n Or maybe add :host selector anyway? If multiple :host selectors are allowed\\n ***\\n\\n\\nProblems with the current approach.\\n\\n1. Direction can be applied only on document level, because mixin prepends theme class,\\nwhich placed on the body.\\n2. *.component.scss styles should be in :host selector. Otherwise angular will add host\\nattribute to [dir=rtl] attribute as well.\\n\\n\\nGeneral problems.\\n\\nLtr is default document direction, but for proper work of nb-ltr (means ltr only),\\n[dir=ltr] should be specified at least somewhere. ':not([dir=rtl]' not applicable here,\\nbecause it's satisfy any parent, that don't have [dir=rtl] attribute.\\nPrevious approach was to use single rtl mixin and reset ltr properties to initial value.\\nBut sometimes it's hard to find, what the previous value should be. And such mixin call looks too verbose.\\n*/\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This mixin generates keyfames.\\n * Because of all keyframes can't be scoped,\\n * we need to puts unique name in each btn-pulse call.\\n */\\n/*\\n\\nAccording to the specification (https://www.w3.org/TR/css-scoping-1/#host-selector)\\n:host and :host-context are pseudo-classes. So we assume they could be combined,\\nlike other pseudo-classes, even same ones.\\nFor example: ':nth-of-type(2n):nth-of-type(even)'.\\n\\nIdeal solution would be to prepend any selector with :host-context([dir=rtl]).\\nThen nebular components will behave as an html element and respond to [dir] attribute on any level,\\nso direction could be overridden on any component level.\\n\\nImplementation code:\\n\\n@mixin nb-rtl() {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n @at-root {selector-append(':host-context([dir=rtl])', &)} {\\n @content;\\n }\\n}\\n\\nAnd when we call it somewhere:\\n\\n:host {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n:host-context(...) {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n\\nResult will look like:\\n\\n:host-context([dir=rtl]):host .some-class {\\n ...\\n}\\n:host-context([dir=rtl]):host-context(...) .some-class {\\n ...\\n}\\n\\n*\\n Side note:\\n :host-context():host selector are valid. https://lists.w3.org/Archives/Public/www-style/2015Feb/0305.html\\n\\n :host-context([dir=rtl]):host-context(...) should match any permutation,\\n so order is not important.\\n*\\n\\n\\nCurrently, there're two problems with this approach:\\n\\nFirst, is that we can't combine :host, :host-context. Angular bugs #14349, #19199.\\nFor the moment of writing, the only possible way is:\\n:host {\\n :host-context(...) {\\n ...\\n }\\n}\\nIt doesn't work for us because mixin could be called somewhere deeper, like:\\n:host {\\n p {\\n @include nb-rtl() { ... }\\n }\\n}\\nWe are not able to go up to :host level to place content passed to mixin.\\n\\nThe second problem is that we only can be sure that we appending :host-context([dir=rtl]) to another\\n:host/:host-context pseudo-class when called in theme files (*.theme.scss).\\n *\\n Side note:\\n Currently, nb-install-component uses another approach where :host prepended with the theme name\\n (https://github.com/angular/angular/blob/5b96078624b0a4760f2dbcf6fdf0bd62791be5bb/packages/compiler/src/shadow_css.ts#L441),\\n but it was made to be able to use current realization of rtl and it can be rewritten back to\\n :host-context($theme) once we will be able to use multiple shadow selectors.\\n *\\nBut when it's called in *.component.scss we can't be sure, that selector starts with :host/:host-context,\\nbecause angular allows omitting pseudo-classes if we don't need to style :host component itself.\\nWe can break such selectors, by just appending :host-context([dir=rtl]) to them.\\n ***\\n Possible solution\\n check if we in theme by some theme variables and if so append, otherwise nest like\\n @at-root :host-context([dir=rtl]) {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n {&} {\\n @content;\\n }\\n }\\n What if :host specified? Can we add space in :host-context(...) :host?\\n Or maybe add :host selector anyway? If multiple :host selectors are allowed\\n ***\\n\\n\\nProblems with the current approach.\\n\\n1. Direction can be applied only on document level, because mixin prepends theme class,\\nwhich placed on the body.\\n2. *.component.scss styles should be in :host selector. Otherwise angular will add host\\nattribute to [dir=rtl] attribute as well.\\n\\n\\nGeneral problems.\\n\\nLtr is default document direction, but for proper work of nb-ltr (means ltr only),\\n[dir=ltr] should be specified at least somewhere. ':not([dir=rtl]' not applicable here,\\nbecause it's satisfy any parent, that don't have [dir=rtl] attribute.\\nPrevious approach was to use single rtl mixin and reset ltr properties to initial value.\\nBut sometimes it's hard to find, what the previous value should be. And such mixin call looks too verbose.\\n*/\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This mixin generates keyfames.\\n * Because of all keyframes can't be scoped,\\n * we need to puts unique name in each btn-pulse call.\\n */\\n/*\\n\\nAccording to the specification (https://www.w3.org/TR/css-scoping-1/#host-selector)\\n:host and :host-context are pseudo-classes. So we assume they could be combined,\\nlike other pseudo-classes, even same ones.\\nFor example: ':nth-of-type(2n):nth-of-type(even)'.\\n\\nIdeal solution would be to prepend any selector with :host-context([dir=rtl]).\\nThen nebular components will behave as an html element and respond to [dir] attribute on any level,\\nso direction could be overridden on any component level.\\n\\nImplementation code:\\n\\n@mixin nb-rtl() {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n @at-root {selector-append(':host-context([dir=rtl])', &)} {\\n @content;\\n }\\n}\\n\\nAnd when we call it somewhere:\\n\\n:host {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n:host-context(...) {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n\\nResult will look like:\\n\\n:host-context([dir=rtl]):host .some-class {\\n ...\\n}\\n:host-context([dir=rtl]):host-context(...) .some-class {\\n ...\\n}\\n\\n*\\n Side note:\\n :host-context():host selector are valid. https://lists.w3.org/Archives/Public/www-style/2015Feb/0305.html\\n\\n :host-context([dir=rtl]):host-context(...) should match any permutation,\\n so order is not important.\\n*\\n\\n\\nCurrently, there're two problems with this approach:\\n\\nFirst, is that we can't combine :host, :host-context. Angular bugs #14349, #19199.\\nFor the moment of writing, the only possible way is:\\n:host {\\n :host-context(...) {\\n ...\\n }\\n}\\nIt doesn't work for us because mixin could be called somewhere deeper, like:\\n:host {\\n p {\\n @include nb-rtl() { ... }\\n }\\n}\\nWe are not able to go up to :host level to place content passed to mixin.\\n\\nThe second problem is that we only can be sure that we appending :host-context([dir=rtl]) to another\\n:host/:host-context pseudo-class when called in theme files (*.theme.scss).\\n *\\n Side note:\\n Currently, nb-install-component uses another approach where :host prepended with the theme name\\n (https://github.com/angular/angular/blob/5b96078624b0a4760f2dbcf6fdf0bd62791be5bb/packages/compiler/src/shadow_css.ts#L441),\\n but it was made to be able to use current realization of rtl and it can be rewritten back to\\n :host-context($theme) once we will be able to use multiple shadow selectors.\\n *\\nBut when it's called in *.component.scss we can't be sure, that selector starts with :host/:host-context,\\nbecause angular allows omitting pseudo-classes if we don't need to style :host component itself.\\nWe can break such selectors, by just appending :host-context([dir=rtl]) to them.\\n ***\\n Possible solution\\n check if we in theme by some theme variables and if so append, otherwise nest like\\n @at-root :host-context([dir=rtl]) {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n {&} {\\n @content;\\n }\\n }\\n What if :host specified? Can we add space in :host-context(...) :host?\\n Or maybe add :host selector anyway? If multiple :host selectors are allowed\\n ***\\n\\n\\nProblems with the current approach.\\n\\n1. Direction can be applied only on document level, because mixin prepends theme class,\\nwhich placed on the body.\\n2. *.component.scss styles should be in :host selector. Otherwise angular will add host\\nattribute to [dir=rtl] attribute as well.\\n\\n\\nGeneral problems.\\n\\nLtr is default document direction, but for proper work of nb-ltr (means ltr only),\\n[dir=ltr] should be specified at least somewhere. ':not([dir=rtl]' not applicable here,\\nbecause it's satisfy any parent, that don't have [dir=rtl] attribute.\\nPrevious approach was to use single rtl mixin and reset ltr properties to initial value.\\nBut sometimes it's hard to find, what the previous value should be. And such mixin call looks too verbose.\\n*/\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This mixin generates keyfames.\\n * Because of all keyframes can't be scoped,\\n * we need to puts unique name in each btn-pulse call.\\n */\\n/*\\n\\nAccording to the specification (https://www.w3.org/TR/css-scoping-1/#host-selector)\\n:host and :host-context are pseudo-classes. So we assume they could be combined,\\nlike other pseudo-classes, even same ones.\\nFor example: ':nth-of-type(2n):nth-of-type(even)'.\\n\\nIdeal solution would be to prepend any selector with :host-context([dir=rtl]).\\nThen nebular components will behave as an html element and respond to [dir] attribute on any level,\\nso direction could be overridden on any component level.\\n\\nImplementation code:\\n\\n@mixin nb-rtl() {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n @at-root {selector-append(':host-context([dir=rtl])', &)} {\\n @content;\\n }\\n}\\n\\nAnd when we call it somewhere:\\n\\n:host {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n:host-context(...) {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n\\nResult will look like:\\n\\n:host-context([dir=rtl]):host .some-class {\\n ...\\n}\\n:host-context([dir=rtl]):host-context(...) .some-class {\\n ...\\n}\\n\\n*\\n Side note:\\n :host-context():host selector are valid. https://lists.w3.org/Archives/Public/www-style/2015Feb/0305.html\\n\\n :host-context([dir=rtl]):host-context(...) should match any permutation,\\n so order is not important.\\n*\\n\\n\\nCurrently, there're two problems with this approach:\\n\\nFirst, is that we can't combine :host, :host-context. Angular bugs #14349, #19199.\\nFor the moment of writing, the only possible way is:\\n:host {\\n :host-context(...) {\\n ...\\n }\\n}\\nIt doesn't work for us because mixin could be called somewhere deeper, like:\\n:host {\\n p {\\n @include nb-rtl() { ... }\\n }\\n}\\nWe are not able to go up to :host level to place content passed to mixin.\\n\\nThe second problem is that we only can be sure that we appending :host-context([dir=rtl]) to another\\n:host/:host-context pseudo-class when called in theme files (*.theme.scss).\\n *\\n Side note:\\n Currently, nb-install-component uses another approach where :host prepended with the theme name\\n (https://github.com/angular/angular/blob/5b96078624b0a4760f2dbcf6fdf0bd62791be5bb/packages/compiler/src/shadow_css.ts#L441),\\n but it was made to be able to use current realization of rtl and it can be rewritten back to\\n :host-context($theme) once we will be able to use multiple shadow selectors.\\n *\\nBut when it's called in *.component.scss we can't be sure, that selector starts with :host/:host-context,\\nbecause angular allows omitting pseudo-classes if we don't need to style :host component itself.\\nWe can break such selectors, by just appending :host-context([dir=rtl]) to them.\\n ***\\n Possible solution\\n check if we in theme by some theme variables and if so append, otherwise nest like\\n @at-root :host-context([dir=rtl]) {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n {&} {\\n @content;\\n }\\n }\\n What if :host specified? Can we add space in :host-context(...) :host?\\n Or maybe add :host selector anyway? If multiple :host selectors are allowed\\n ***\\n\\n\\nProblems with the current approach.\\n\\n1. Direction can be applied only on document level, because mixin prepends theme class,\\nwhich placed on the body.\\n2. *.component.scss styles should be in :host selector. Otherwise angular will add host\\nattribute to [dir=rtl] attribute as well.\\n\\n\\nGeneral problems.\\n\\nLtr is default document direction, but for proper work of nb-ltr (means ltr only),\\n[dir=ltr] should be specified at least somewhere. ':not([dir=rtl]' not applicable here,\\nbecause it's satisfy any parent, that don't have [dir=rtl] attribute.\\nPrevious approach was to use single rtl mixin and reset ltr properties to initial value.\\nBut sometimes it's hard to find, what the previous value should be. And such mixin call looks too verbose.\\n*/\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This mixin generates keyfames.\\n * Because of all keyframes can't be scoped,\\n * we need to puts unique name in each btn-pulse call.\\n */\\n/*\\n\\nAccording to the specification (https://www.w3.org/TR/css-scoping-1/#host-selector)\\n:host and :host-context are pseudo-classes. So we assume they could be combined,\\nlike other pseudo-classes, even same ones.\\nFor example: ':nth-of-type(2n):nth-of-type(even)'.\\n\\nIdeal solution would be to prepend any selector with :host-context([dir=rtl]).\\nThen nebular components will behave as an html element and respond to [dir] attribute on any level,\\nso direction could be overridden on any component level.\\n\\nImplementation code:\\n\\n@mixin nb-rtl() {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n @at-root {selector-append(':host-context([dir=rtl])', &)} {\\n @content;\\n }\\n}\\n\\nAnd when we call it somewhere:\\n\\n:host {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n:host-context(...) {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n\\nResult will look like:\\n\\n:host-context([dir=rtl]):host .some-class {\\n ...\\n}\\n:host-context([dir=rtl]):host-context(...) .some-class {\\n ...\\n}\\n\\n*\\n Side note:\\n :host-context():host selector are valid. https://lists.w3.org/Archives/Public/www-style/2015Feb/0305.html\\n\\n :host-context([dir=rtl]):host-context(...) should match any permutation,\\n so order is not important.\\n*\\n\\n\\nCurrently, there're two problems with this approach:\\n\\nFirst, is that we can't combine :host, :host-context. Angular bugs #14349, #19199.\\nFor the moment of writing, the only possible way is:\\n:host {\\n :host-context(...) {\\n ...\\n }\\n}\\nIt doesn't work for us because mixin could be called somewhere deeper, like:\\n:host {\\n p {\\n @include nb-rtl() { ... }\\n }\\n}\\nWe are not able to go up to :host level to place content passed to mixin.\\n\\nThe second problem is that we only can be sure that we appending :host-context([dir=rtl]) to another\\n:host/:host-context pseudo-class when called in theme files (*.theme.scss).\\n *\\n Side note:\\n Currently, nb-install-component uses another approach where :host prepended with the theme name\\n (https://github.com/angular/angular/blob/5b96078624b0a4760f2dbcf6fdf0bd62791be5bb/packages/compiler/src/shadow_css.ts#L441),\\n but it was made to be able to use current realization of rtl and it can be rewritten back to\\n :host-context($theme) once we will be able to use multiple shadow selectors.\\n *\\nBut when it's called in *.component.scss we can't be sure, that selector starts with :host/:host-context,\\nbecause angular allows omitting pseudo-classes if we don't need to style :host component itself.\\nWe can break such selectors, by just appending :host-context([dir=rtl]) to them.\\n ***\\n Possible solution\\n check if we in theme by some theme variables and if so append, otherwise nest like\\n @at-root :host-context([dir=rtl]) {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n {&} {\\n @content;\\n }\\n }\\n What if :host specified? Can we add space in :host-context(...) :host?\\n Or maybe add :host selector anyway? If multiple :host selectors are allowed\\n ***\\n\\n\\nProblems with the current approach.\\n\\n1. Direction can be applied only on document level, because mixin prepends theme class,\\nwhich placed on the body.\\n2. *.component.scss styles should be in :host selector. Otherwise angular will add host\\nattribute to [dir=rtl] attribute as well.\\n\\n\\nGeneral problems.\\n\\nLtr is default document direction, but for proper work of nb-ltr (means ltr only),\\n[dir=ltr] should be specified at least somewhere. ':not([dir=rtl]' not applicable here,\\nbecause it's satisfy any parent, that don't have [dir=rtl] attribute.\\nPrevious approach was to use single rtl mixin and reset ltr properties to initial value.\\nBut sometimes it's hard to find, what the previous value should be. And such mixin call looks too verbose.\\n*/\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This mixin generates keyfames.\\n * Because of all keyframes can't be scoped,\\n * we need to puts unique name in each btn-pulse call.\\n */\\n/*\\n\\nAccording to the specification (https://www.w3.org/TR/css-scoping-1/#host-selector)\\n:host and :host-context are pseudo-classes. So we assume they could be combined,\\nlike other pseudo-classes, even same ones.\\nFor example: ':nth-of-type(2n):nth-of-type(even)'.\\n\\nIdeal solution would be to prepend any selector with :host-context([dir=rtl]).\\nThen nebular components will behave as an html element and respond to [dir] attribute on any level,\\nso direction could be overridden on any component level.\\n\\nImplementation code:\\n\\n@mixin nb-rtl() {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n @at-root {selector-append(':host-context([dir=rtl])', &)} {\\n @content;\\n }\\n}\\n\\nAnd when we call it somewhere:\\n\\n:host {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n:host-context(...) {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n\\nResult will look like:\\n\\n:host-context([dir=rtl]):host .some-class {\\n ...\\n}\\n:host-context([dir=rtl]):host-context(...) .some-class {\\n ...\\n}\\n\\n*\\n Side note:\\n :host-context():host selector are valid. https://lists.w3.org/Archives/Public/www-style/2015Feb/0305.html\\n\\n :host-context([dir=rtl]):host-context(...) should match any permutation,\\n so order is not important.\\n*\\n\\n\\nCurrently, there're two problems with this approach:\\n\\nFirst, is that we can't combine :host, :host-context. Angular bugs #14349, #19199.\\nFor the moment of writing, the only possible way is:\\n:host {\\n :host-context(...) {\\n ...\\n }\\n}\\nIt doesn't work for us because mixin could be called somewhere deeper, like:\\n:host {\\n p {\\n @include nb-rtl() { ... }\\n }\\n}\\nWe are not able to go up to :host level to place content passed to mixin.\\n\\nThe second problem is that we only can be sure that we appending :host-context([dir=rtl]) to another\\n:host/:host-context pseudo-class when called in theme files (*.theme.scss).\\n *\\n Side note:\\n Currently, nb-install-component uses another approach where :host prepended with the theme name\\n (https://github.com/angular/angular/blob/5b96078624b0a4760f2dbcf6fdf0bd62791be5bb/packages/compiler/src/shadow_css.ts#L441),\\n but it was made to be able to use current realization of rtl and it can be rewritten back to\\n :host-context($theme) once we will be able to use multiple shadow selectors.\\n *\\nBut when it's called in *.component.scss we can't be sure, that selector starts with :host/:host-context,\\nbecause angular allows omitting pseudo-classes if we don't need to style :host component itself.\\nWe can break such selectors, by just appending :host-context([dir=rtl]) to them.\\n ***\\n Possible solution\\n check if we in theme by some theme variables and if so append, otherwise nest like\\n @at-root :host-context([dir=rtl]) {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n {&} {\\n @content;\\n }\\n }\\n What if :host specified? Can we add space in :host-context(...) :host?\\n Or maybe add :host selector anyway? If multiple :host selectors are allowed\\n ***\\n\\n\\nProblems with the current approach.\\n\\n1. Direction can be applied only on document level, because mixin prepends theme class,\\nwhich placed on the body.\\n2. *.component.scss styles should be in :host selector. Otherwise angular will add host\\nattribute to [dir=rtl] attribute as well.\\n\\n\\nGeneral problems.\\n\\nLtr is default document direction, but for proper work of nb-ltr (means ltr only),\\n[dir=ltr] should be specified at least somewhere. ':not([dir=rtl]' not applicable here,\\nbecause it's satisfy any parent, that don't have [dir=rtl] attribute.\\nPrevious approach was to use single rtl mixin and reset ltr properties to initial value.\\nBut sometimes it's hard to find, what the previous value should be. And such mixin call looks too verbose.\\n*/\\n/*!\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/*\\n :host can be prefixed\\n https://github.com/angular/angular/blob/8d0ee34939f14c07876d222c25b405ed458a34d3/packages/compiler/src/shadow_css.ts#L441\\n\\n We have to use :host insted of :host-context($theme), to be able to prefix theme class\\n with something defined inside of @content, by prefixing &.\\n For example this scss code:\\n .nb-theme-default {\\n .some-selector & {\\n ...\\n }\\n }\\n Will result in next css:\\n .some-selector .nb-theme-default {\\n ...\\n }\\n\\n It doesn't work with :host-context because angular splitting it in two selectors and removes\\n prefix in one of the selectors.\\n */\\n.nb-theme-corporate :host {\\n width: 100%;\\n display: flex;\\n justify-content: space-between;\\n align-items: center; }\\n.nb-theme-corporate :host .socials {\\n font-size: 2rem; }\\n.nb-theme-corporate :host .socials a {\\n padding: 0.4rem;\\n color: #a4abb3;\\n transition: color ease-out 0.1s; }\\n.nb-theme-corporate :host .socials a:hover {\\n color: #181818; }\\n@media (max-width: 575.98px) {\\n .nb-theme-corporate :host .socials {\\n font-size: 1.5rem; } }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvQHRoZW1lL2NvbXBvbmVudHMvZm9vdGVyL0U6XFxBbmd1bGFyXFxSZWNXZWJcXFJlY0Zyb250ZW5kL25vZGVfbW9kdWxlc1xcQG5lYnVsYXJcXHRoZW1lXFxzdHlsZXNcXF90aGVtaW5nLnNjc3MiLCJzcmMvYXBwL0B0aGVtZS9jb21wb25lbnRzL2Zvb3Rlci9FOlxcQW5ndWxhclxcUmVjV2ViXFxSZWNGcm9udGVuZC9ub2RlX21vZHVsZXNcXEBuZWJ1bGFyXFx0aGVtZVxcc3R5bGVzXFxjb3JlXFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL0B0aGVtZS9jb21wb25lbnRzL2Zvb3Rlci9FOlxcQW5ndWxhclxcUmVjV2ViXFxSZWNGcm9udGVuZC9ub2RlX21vZHVsZXNcXEBuZWJ1bGFyXFx0aGVtZVxcc3R5bGVzXFxjb3JlXFxfZnVuY3Rpb25zLnNjc3MiLCJzcmMvYXBwL0B0aGVtZS9jb21wb25lbnRzL2Zvb3Rlci9FOlxcQW5ndWxhclxcUmVjV2ViXFxSZWNGcm9udGVuZC9ub2RlX21vZHVsZXNcXEBuZWJ1bGFyXFx0aGVtZVxcc3R5bGVzXFx0aGVtZXNcXF9kZWZhdWx0LnNjc3MiLCJzcmMvYXBwL0B0aGVtZS9jb21wb25lbnRzL2Zvb3Rlci9FOlxcQW5ndWxhclxcUmVjV2ViXFxSZWNGcm9udGVuZC9ub2RlX21vZHVsZXNcXEBuZWJ1bGFyXFx0aGVtZVxcc3R5bGVzXFx0aGVtZXNcXF9jb3NtaWMuc2NzcyIsInNyYy9hcHAvQHRoZW1lL2NvbXBvbmVudHMvZm9vdGVyL0U6XFxBbmd1bGFyXFxSZWNXZWJcXFJlY0Zyb250ZW5kL25vZGVfbW9kdWxlc1xcQG5lYnVsYXJcXHRoZW1lXFxzdHlsZXNcXHRoZW1lc1xcX2NvcnBvcmF0ZS5zY3NzIiwic3JjL2FwcC9AdGhlbWUvY29tcG9uZW50cy9mb290ZXIvRTpcXEFuZ3VsYXJcXFJlY1dlYlxcUmVjRnJvbnRlbmQvbm9kZV9tb2R1bGVzXFxAbmVidWxhclxcdGhlbWVcXHN0eWxlc1xcZ2xvYmFsXFxfYnJlYWtwb2ludHMuc2NzcyIsInNyYy9hcHAvQHRoZW1lL2NvbXBvbmVudHMvZm9vdGVyL0U6XFxBbmd1bGFyXFxSZWNXZWJcXFJlY0Zyb250ZW5kL3NyY1xcYXBwXFxAdGhlbWVcXGNvbXBvbmVudHNcXGZvb3RlclxcZm9vdGVyLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9AdGhlbWUvY29tcG9uZW50cy9mb290ZXIvRTpcXEFuZ3VsYXJcXFJlY1dlYlxcUmVjRnJvbnRlbmQvbm9kZV9tb2R1bGVzXFxib290c3RyYXBcXHNjc3NcXG1peGluc1xcX2JyZWFrcG9pbnRzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUdIOztHQUVHO0FDVEg7Ozs7R0FJRztBQXNLSDs7OztHQUlHO0FBc0JIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUhFO0FDdlRGOzs7O0dBSUc7QUNKSDs7OztHQUlHO0FESkg7Ozs7R0FJRztBREpIOzs7O0dBSUc7QUFzS0g7Ozs7R0FJRztBQXNCSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1IRTtBR3ZURjs7OztHQUlHO0FGSkg7Ozs7R0FJRztBREpIOzs7O0dBSUc7QUFzS0g7Ozs7R0FJRztBQXNCSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1IRTtBRXZURjs7OztHQUlHO0FESkg7Ozs7R0FJRztBREpIOzs7O0dBSUc7QUFzS0g7Ozs7R0FJRztBQXNCSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1IRTtBSXZURjs7OztHQUlHO0FISkg7Ozs7R0FJRztBREpIOzs7O0dBSUc7QUFzS0g7Ozs7R0FJRztBQXNCSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1IRTtBRXZURjs7OztHQUlHO0FESkg7Ozs7R0FJRztBREpIOzs7O0dBSUc7QUFzS0g7Ozs7R0FJRztBQXNCSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1IRTtBS3ZURjs7OztHQUlHO0FOOEdDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BbUJFO0FBQ0Y7RU9qSUYsWUFBVztFQUNYLGNBQWE7RUFDYiwrQkFBOEI7RUFDOUIsb0JBQW1CLEVQaUloQjtBTy9ISDtJQUNFLGdCQUFlLEVBV2hCO0FBVEM7TUFDRSxnQkFBZTtNQUNmLGVKcUJhO01JcEJiLGdDQUErQixFQUtoQztBQUhDO1FBQ0UsZUZGbUIsRUVHcEI7QUNxREg7SURoREE7TUFDRSxrQkFBaUIsRUFDbEIsRUFBQSIsImZpbGUiOiJzcmMvYXBwL0B0aGVtZS9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWt2ZW8uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICovXG5cblxuLyoqXG4gKiBUaGlzIGlzIGEgc3RhcnRpbmcgcG9pbnQgd2hlcmUgd2UgZGVjbGFyZSB0aGUgbWFwcyBvZiB0aGVtZXMgYW5kIGdsb2JhbGx5IGF2YWlsYWJsZSBmdW5jdGlvbnMvbWl4aW5zXG4gKi9cblxuQGltcG9ydCAnY29yZS9taXhpbnMnO1xuQGltcG9ydCAnY29yZS9mdW5jdGlvbnMnO1xuXG4kbmItZW5hYmxlZC10aGVtZXM6ICgpICFnbG9iYWw7XG4kbmItZW5hYmxlLWNzcy12YXJpYWJsZXM6IGZhbHNlICFnbG9iYWw7XG5cbiRuYi10aGVtZXM6ICgpICFnbG9iYWw7XG4kbmItdGhlbWVzLW5vbi1wcm9jZXNzZWQ6ICgpICFnbG9iYWw7XG4kbmItdGhlbWVzLWV4cG9ydDogKCkgIWdsb2JhbDtcblxuQGZ1bmN0aW9uIG5iLXRoZW1lKCRrZXkpIHtcbiAgQHJldHVybiBtYXAtZ2V0KCR0aGVtZSwgJGtleSk7XG59XG5cbkBmdW5jdGlvbiBuYi1nZXQtdmFsdWUoJHRoZW1lLCAka2V5LCAkdmFsdWUpIHtcbiAgQGlmICh0eXBlLW9mKCR2YWx1ZSkgPT0gJ3N0cmluZycpIHtcbiAgICAkdG1wOiBtYXAtZ2V0KCR0aGVtZSwgJHZhbHVlKTtcblxuICAgIEBpZiAoJHRtcCAhPSBudWxsKSB7XG4gICAgICBAcmV0dXJuIG5iLWdldC12YWx1ZSgkdGhlbWUsICR2YWx1ZSwgJHRtcCk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBtYXAtZ2V0KCR0aGVtZSwgJGtleSk7XG59XG5cbkBmdW5jdGlvbiBjb252ZXJ0LXRvLWNzcy12YXJpYWJsZXMoJHZhcmlhYmxlcykge1xuICAkcmVzdWx0OiAoKTtcbiAgQGVhY2ggJHZhciwgJHZhbHVlIGluICR2YXJpYWJsZXMge1xuICAgICRyZXN1bHQ6IG1hcC1zZXQoJHJlc3VsdCwgJHZhciwgJy0tdmFyKCN7JHZhcn0pJyk7XG4gIH1cblxuICBAZGVidWcgJHJlc3VsdDtcbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG5AZnVuY3Rpb24gc2V0LWdsb2JhbC10aGVtZS12YXJzKCR0aGVtZSwgJHRoZW1lLW5hbWUpIHtcbiAgJHRoZW1lOiAkdGhlbWUgIWdsb2JhbDtcbiAgJHRoZW1lLW5hbWU6ICR0aGVtZS1uYW1lICFnbG9iYWw7XG4gIEBpZiAoJG5iLWVuYWJsZS1jc3MtdmFyaWFibGVzKSB7XG4gICAgJHRoZW1lOiBjb252ZXJ0LXRvLWNzcy12YXJpYWJsZXMoJHRoZW1lKSAhZ2xvYmFsO1xuICB9XG4gIEByZXR1cm4gJHRoZW1lO1xufVxuXG5AZnVuY3Rpb24gbmItcmVnaXN0ZXItdGhlbWUoJHRoZW1lLCAkbmFtZSwgJGRlZmF1bHQ6IG51bGwpIHtcblxuICAkdGhlbWUtZGF0YTogKCk7XG5cblxuICBAaWYgKCRkZWZhdWx0ICE9IG51bGwpIHtcblxuICAgICR0aGVtZTogbWFwLW1lcmdlKG1hcC1nZXQoJG5iLXRoZW1lcy1ub24tcHJvY2Vzc2VkLCAkZGVmYXVsdCksICR0aGVtZSk7XG4gICAgJG5iLXRoZW1lcy1ub24tcHJvY2Vzc2VkOiBtYXAtc2V0KCRuYi10aGVtZXMtbm9uLXByb2Nlc3NlZCwgJG5hbWUsICR0aGVtZSkgIWdsb2JhbDtcblxuICAgICR0aGVtZS1kYXRhOiBtYXAtc2V0KCR0aGVtZS1kYXRhLCBkYXRhLCAkdGhlbWUpO1xuICAgICRuYi10aGVtZXMtZXhwb3J0OiBtYXAtc2V0KCRuYi10aGVtZXMtZXhwb3J0LCAkbmFtZSwgbWFwLXNldCgkdGhlbWUtZGF0YSwgcGFyZW50LCAkZGVmYXVsdCkpICFnbG9iYWw7XG5cbiAgfSBAZWxzZSB7XG4gICAgJG5iLXRoZW1lcy1ub24tcHJvY2Vzc2VkOiBtYXAtc2V0KCRuYi10aGVtZXMtbm9uLXByb2Nlc3NlZCwgJG5hbWUsICR0aGVtZSkgIWdsb2JhbDtcblxuICAgICR0aGVtZS1kYXRhOiBtYXAtc2V0KCR0aGVtZS1kYXRhLCBkYXRhLCAkdGhlbWUpO1xuICAgICRuYi10aGVtZXMtZXhwb3J0OiBtYXAtc2V0KCRuYi10aGVtZXMtZXhwb3J0LCAkbmFtZSwgbWFwLXNldCgkdGhlbWUtZGF0YSwgcGFyZW50LCBudWxsKSkgIWdsb2JhbDtcbiAgfVxuXG4gICR0aGVtZS1wYXJzZWQ6ICgpO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJHRoZW1lIHtcbiAgICAkdGhlbWUtcGFyc2VkOiBtYXAtc2V0KCR0aGVtZS1wYXJzZWQsICRrZXksIG5iLWdldC12YWx1ZSgkdGhlbWUsICRrZXksICR2YWx1ZSkpO1xuICB9XG5cbiAgLy8gZW5hYmxlIHJpZ2h0IGF3YXkgd2hlbiBpbnN0YWxsZWRcbiAgJHRoZW1lLXBhcnNlZDogc2V0LWdsb2JhbC10aGVtZS12YXJzKCR0aGVtZS1wYXJzZWQsICRuYW1lKTtcbiAgQHJldHVybiBtYXAtc2V0KCRuYi10aGVtZXMsICRuYW1lLCAkdGhlbWUtcGFyc2VkKTtcbn1cblxuQGZ1bmN0aW9uIGdldC1lbmFibGVkLXRoZW1lcygpIHtcbiAgJHRoZW1lcy10by1pbnN0YWxsOiAoKTtcblxuICBAaWYgKGxlbmd0aCgkbmItZW5hYmxlZC10aGVtZXMpID4gMCkge1xuICAgIEBlYWNoICR0aGVtZS1uYW1lIGluICRuYi1lbmFibGVkLXRoZW1lcyB7XG4gICAgICAkdGhlbWVzLXRvLWluc3RhbGw6IG1hcC1zZXQoJHRoZW1lcy10by1pbnN0YWxsLCAkdGhlbWUtbmFtZSwgbWFwLWdldCgkbmItdGhlbWVzLCAkdGhlbWUtbmFtZSkpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJHRoZW1lcy10by1pbnN0YWxsOiAkbmItdGhlbWVzO1xuICB9XG5cbiAgQHJldHVybiAkdGhlbWVzLXRvLWluc3RhbGw7XG59XG5cbkBtaXhpbiBpbnN0YWxsLWNzcy12YXJpYWJsZXMoJHRoZW1lLW5hbWUsICR2YXJpYWJsZXMpIHtcbiAgLm5iLXRoZW1lLSN7JHRoZW1lLW5hbWV9IHtcbiAgICBAZWFjaCAkdmFyLCAkdmFsdWUgaW4gJHZhcmlhYmxlcyB7XG4gICAgICAtLSN7JHZhcn06ICR2YWx1ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVE9ETzogd2UgaGlkZSA6aG9zdCBpbnNpZGUgb2YgaXQgd2hpY2ggaXMgbm90IG9idmlvdXNcbkBtaXhpbiBuYi1pbnN0YWxsLWNvbXBvbmVudCgpIHtcblxuICAkdGhlbWVzLXRvLWluc3RhbGw6IGdldC1lbmFibGVkLXRoZW1lcygpO1xuXG4gIEBlYWNoICR0aGVtZS1uYW1lLCAkdGhlbWUgaW4gJHRoZW1lcy10by1pbnN0YWxsIHtcbiAgICAvKlxuICAgICAgOmhvc3QgY2FuIGJlIHByZWZpeGVkXG4gICAgICBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvOGQwZWUzNDkzOWYxNGMwNzg3NmQyMjJjMjViNDA1ZWQ0NThhMzRkMy9wYWNrYWdlcy9jb21waWxlci9zcmMvc2hhZG93X2Nzcy50cyNMNDQxXG5cbiAgICAgIFdlIGhhdmUgdG8gdXNlIDpob3N0IGluc3RlZCBvZiA6aG9zdC1jb250ZXh0KCR0aGVtZSksIHRvIGJlIGFibGUgdG8gcHJlZml4IHRoZW1lIGNsYXNzXG4gICAgICB3aXRoIHNvbWV0aGluZyBkZWZpbmVkIGluc2lkZSBvZiBAY29udGVudCwgYnkgcHJlZml4aW5nICYuXG4gICAgICBGb3IgZXhhbXBsZSB0aGlzIHNjc3MgY29kZTpcbiAgICAgICAgLm5iLXRoZW1lLWRlZmF1bHQge1xuICAgICAgICAgIC5zb21lLXNlbGVjdG9yICYge1xuICAgICAgICAgICAgLi4uXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBXaWxsIHJlc3VsdCBpbiBuZXh0IGNzczpcbiAgICAgICAgLnNvbWUtc2VsZWN0b3IgLm5iLXRoZW1lLWRlZmF1bHQge1xuICAgICAgICAgIC4uLlxuICAgICAgICB9XG5cbiAgICAgIEl0IGRvZXNuJ3Qgd29yayB3aXRoIDpob3N0LWNvbnRleHQgYmVjYXVzZSBhbmd1bGFyIHNwbGl0dGluZyBpdCBpbiB0d28gc2VsZWN0b3JzIGFuZCByZW1vdmVzXG4gICAgICBwcmVmaXggaW4gb25lIG9mIHRoZSBzZWxlY3RvcnMuXG4gICAgKi9cbiAgICAubmItdGhlbWUtI3skdGhlbWUtbmFtZX0gOmhvc3Qge1xuICAgICAgJHRoZW1lOiBzZXQtZ2xvYmFsLXRoZW1lLXZhcnMoJHRoZW1lLCAkdGhlbWUtbmFtZSk7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG5iLWZvci10aGVtZSgkbmFtZSkge1xuICBAaWYgKCR0aGVtZS1uYW1lID09ICRuYW1lKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIG5iLWV4Y2VwdC10aGVtZSgkbmFtZSkge1xuICBAaWYgKCR0aGVtZS1uYW1lICE9ICRuYW1lKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gVE9ETzogYW5vdGhlciBtaXhpbmcgZm9yIHRoZSBhbG1vc3Qgc2FtZSB0aGluZ1xuQG1peGluIG5iLWluc3RhbGwtcm9vdC1jb21wb25lbnQoKSB7XG4gIEB3YXJuICdgbmItaW5zdGFsbC1yb290LWNvbXBvbmVudGAgaXMgZGVwcmljYXRlZCwgcmVwbGFjZSB3aXRoIGBuYi1pbnN0YWxsLWNvbXBvbmVudGAsIGFzIGBib2R5YCBpcyByb290IGVsZW1lbnQgbm93JztcblxuICBAaW5jbHVkZSBuYi1pbnN0YWxsLWNvbXBvbmVudCgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbmItaW5zdGFsbC1nbG9iYWwoKSB7XG4gICR0aGVtZXMtdG8taW5zdGFsbDogZ2V0LWVuYWJsZWQtdGhlbWVzKCk7XG5cbiAgQGVhY2ggJHRoZW1lLW5hbWUsICR0aGVtZSBpbiAkdGhlbWVzLXRvLWluc3RhbGwge1xuICAgIC5uYi10aGVtZS0jeyR0aGVtZS1uYW1lfSB7XG4gICAgICAkdGhlbWU6IHNldC1nbG9iYWwtdGhlbWUtdmFycygkdGhlbWUsICR0aGVtZS1uYW1lKTtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuXG5AbWl4aW4gbmItc2Nyb2xsYmFycygkZmcsICRiZywgJHNpemUsICRib3JkZXItcmFkaXVzOiAkc2l6ZSAvIDIpIHtcbiAgOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6ICRzaXplO1xuICAgIGhlaWdodDogJHNpemU7XG4gIH1cblxuICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiAkZmc7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICB9XG5cbiAgOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgYmFja2dyb3VuZDogJGJnO1xuICB9XG5cbiAgLy8gVE9ETzogcmVtb3ZlXG4gIC8vIEZvciBJbnRlcm5ldCBFeHBsb3JlclxuICBzY3JvbGxiYXItZmFjZS1jb2xvcjogJGZnO1xuICBzY3JvbGxiYXItdHJhY2stY29sb3I6ICRiZztcbn1cblxuQG1peGluIG5iLXJhZGlhbC1ncmFkaWVudCgkY29sb3ItMSwgJGNvbG9yLTIsICRjb2xvci0zKSB7XG4gIGJhY2tncm91bmQ6ICRjb2xvci0yOyAvKiBPbGQgYnJvd3NlcnMgKi9cbiAgYmFja2dyb3VuZDogLW1vei1yYWRpYWwtZ3JhZGllbnQoYm90dG9tLCBlbGxpcHNlIGNvdmVyLCAkY29sb3ItMSAwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29sb3ItMiA0NSUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvbG9yLTMgMTAwJSk7IC8qIEZGMy42LTE1ICovXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGJvdHRvbSwgZWxsaXBzZSBjb3ZlciwgJGNvbG9yLTEgMCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvbG9yLTIgNDUlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb2xvci0zIDEwMCUpOyAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCBib3R0b20sICRjb2xvci0xIDAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb2xvci0yIDQ1JSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29sb3ItMyAxMDAlKTsgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXG4gIGZpbHRlcjogcHJvZ2lkOmR4aW1hZ2V0cmFuc2Zvcm0ubWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyRjb2xvci0xJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kQ29sb3JzdHI9JyRjb2xvci0zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JhZGllbnRUeXBlPTEpOyAvKiBJRTYtOSBmYWxsYmFjayBvbiBob3Jpem9udGFsIGdyYWRpZW50ICovXG59XG5cbkBtaXhpbiBuYi1yaWdodC1ncmFkaWVudCgkbGVmdC1jb2xvciwgJHJpZ2h0LWNvbG9yKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJGxlZnQtY29sb3IsICRyaWdodC1jb2xvcik7XG59XG5cbkBtaXhpbiBuYi1oZWFkaW5ncygkZnJvbTogMSwgJHRvOiA2KSB7XG4gIEBmb3IgJGkgZnJvbSAkZnJvbSB0aHJvdWdoICR0byB7XG4gICAgaCN7JGl9IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGhvdmVyLWZvY3VzLWFjdGl2ZSB7XG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlLFxuICAmOmhvdmVyIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gY2VudGVyLWhvcml6b250YWwtYWJzb2x1dGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xuICBsZWZ0OiA1MCU7XG59XG5cbkBtaXhpbiBpbnN0YWxsLXRodW1iKCkge1xuICAkdGh1bWItc2VsZWN0b3JzOiAoXG4gICAgJzo6LXdlYmtpdC1zbGlkZXItdGh1bWInXG4gICAgJzo6LW1vei1yYW5nZS10aHVtYidcbiAgICAnOjotbXMtdGh1bWInXG4gICk7XG5cbiAgQGVhY2ggJHNlbGVjdG9yIGluICR0aHVtYi1zZWxlY3RvcnMge1xuICAgICYjeyRzZWxlY3Rvcn0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBpbnN0YWxsLXRyYWNrKCkge1xuICAkdGh1bWItc2VsZWN0b3JzOiAoXG4gICAgJzo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2snXG4gICAgJzo6LW1vei1yYW5nZS10cmFjaydcbiAgICAnOjotbXMtdHJhY2snXG4gICk7XG5cbiAgQGVhY2ggJHNlbGVjdG9yIGluICR0aHVtYi1zZWxlY3RvcnMge1xuICAgICYjeyRzZWxlY3Rvcn0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBpbnN0YWxsLXBsYWNlaG9sZGVyKCRjb2xvciwgJGZvbnQtc2l6ZSkge1xuICAkcGxhY2Vob2xkZXItc2VsZWN0b3JzOiAoXG4gICAgJzo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcidcbiAgICAnOjotbW96LXBsYWNlaG9sZGVyJ1xuICAgICc6LW1vei1wbGFjZWhvbGRlcidcbiAgICAnOi1tcy1pbnB1dC1wbGFjZWhvbGRlcidcbiAgKTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIoJGNvbG9yLCAkZm9udC1zaXplKTtcbiAgfVxuXG4gIEBlYWNoICRzZWxlY3RvciBpbiAkcGxhY2Vob2xkZXItc2VsZWN0b3JzIHtcbiAgICAmI3skc2VsZWN0b3J9IHtcbiAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyKCRjb2xvciwgJGZvbnQtc2l6ZSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyN7JHNlbGVjdG9yfSB7XG4gICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlci1mb2N1cygpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gcGxhY2Vob2xkZXIoJGNvbG9yLCAkZm9udC1zaXplKSB7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG5AbWl4aW4gcGxhY2Vob2xkZXItZm9jdXMoKSB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRlLi4uKSB7XG4gICRtYXg6IGxlbmd0aCgkYW5pbWF0ZSk7XG4gICRhbmltYXRpb25zOiAnJztcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRtYXgge1xuICAgICRhbmltYXRpb25zOiAjeyRhbmltYXRpb25zICsgbnRoKCRhbmltYXRlLCAkaSl9O1xuXG4gICAgQGlmICRpIDwgJG1heCB7XG4gICAgICAkYW5pbWF0aW9uczogI3skYW5pbWF0aW9ucyArICcsICd9O1xuICAgIH1cbiAgfVxuICAtd2Via2l0LWFuaW1hdGlvbjogJGFuaW1hdGlvbnM7XG4gIC1tb3otYW5pbWF0aW9uOiAgICAkYW5pbWF0aW9ucztcbiAgLW8tYW5pbWF0aW9uOiAgICAgICRhbmltYXRpb25zO1xuICBhbmltYXRpb246ICAgICAgICAgJGFuaW1hdGlvbnM7XG59XG5cbkBtaXhpbiBrZXlmcmFtZXMoJGFuaW1hdGlvbk5hbWUpIHtcbiAgQC13ZWJraXQta2V5ZnJhbWVzICN7JGFuaW1hdGlvbk5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW1vei1rZXlmcmFtZXMgI3skYW5pbWF0aW9uTmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtby1rZXlmcmFtZXMgI3skYW5pbWF0aW9uTmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBrZXlmcmFtZXMgI3skYW5pbWF0aW9uTmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8qKlxuICogVGhpcyBtaXhpbiBnZW5lcmF0ZXMga2V5ZmFtZXMuXG4gKiBCZWNhdXNlIG9mIGFsbCBrZXlmcmFtZXMgY2FuJ3QgYmUgc2NvcGVkLFxuICogd2UgbmVlZCB0byBwdXRzIHVuaXF1ZSBuYW1lIGluIGVhY2ggYnRuLXB1bHNlIGNhbGwuXG4gKi9cbkBtaXhpbiBidG4tcHVsc2UoJG5hbWUsICRjb2xvcikge1xuICAmLmJ0bi1wdWxzZSB7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uKGJ0bi0jeyRuYW1lfS1wdWxzZSAxLjVzIGluZmluaXRlKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGtleWZyYW1lcyhidG4tI3skbmFtZX0tcHVsc2UpIHtcbiAgICAwJSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3BhY2l0eTogbmItdGhlbWUoYnRuLWRpc2FibGVkLW9wYWNpdHkpO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDFyZW0gMCAkY29sb3I7XG4gICAgICBvcGFjaXR5OiAwLjg7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG9wYWNpdHk6IG5iLXRoZW1lKGJ0bi1kaXNhYmxlZC1vcGFjaXR5KTtcbiAgICB9XG4gIH1cbn1cblxuLypcblxuQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIChodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXNjb3BpbmctMS8jaG9zdC1zZWxlY3Rvcilcbjpob3N0IGFuZCA6aG9zdC1jb250ZXh0IGFyZSBwc2V1ZG8tY2xhc3Nlcy4gU28gd2UgYXNzdW1lIHRoZXkgY291bGQgYmUgY29tYmluZWQsXG5saWtlIG90aGVyIHBzZXVkby1jbGFzc2VzLCBldmVuIHNhbWUgb25lcy5cbkZvciBleGFtcGxlOiAnOm50aC1vZi10eXBlKDJuKTpudGgtb2YtdHlwZShldmVuKScuXG5cbklkZWFsIHNvbHV0aW9uIHdvdWxkIGJlIHRvIHByZXBlbmQgYW55IHNlbGVjdG9yIHdpdGggOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pLlxuVGhlbiBuZWJ1bGFyIGNvbXBvbmVudHMgd2lsbCBiZWhhdmUgYXMgYW4gaHRtbCBlbGVtZW50IGFuZCByZXNwb25kIHRvIFtkaXJdIGF0dHJpYnV0ZSBvbiBhbnkgbGV2ZWwsXG5zbyBkaXJlY3Rpb24gY291bGQgYmUgb3ZlcnJpZGRlbiBvbiBhbnkgY29tcG9uZW50IGxldmVsLlxuXG5JbXBsZW1lbnRhdGlvbiBjb2RlOlxuXG5AbWl4aW4gbmItcnRsKCkge1xuICAvLyBhZGQgIyB0byBzY3NzIGludGVycG9sYXRpb24gc3RhdGVtZW50LlxuICAvLyBpdCB3b3JrcyBpbiBjb21tZW50cyBhbmQgd2UgY2FuJ3QgdXNlIGl0IGhlcmVcbiAgQGF0LXJvb3Qge3NlbGVjdG9yLWFwcGVuZCgnOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pJywgJil9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5BbmQgd2hlbiB3ZSBjYWxsIGl0IHNvbWV3aGVyZTpcblxuOmhvc3Qge1xuICAuc29tZS1jbGFzcyB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkge1xuICAgICAgLi4uXG4gICAgfVxuICB9XG59XG46aG9zdC1jb250ZXh0KC4uLikge1xuICAuc29tZS1jbGFzcyB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkge1xuICAgICAgLi4uXG4gICAgfVxuICB9XG59XG5cblJlc3VsdCB3aWxsIGxvb2sgbGlrZTpcblxuOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pOmhvc3QgLnNvbWUtY2xhc3Mge1xuICAuLi5cbn1cbjpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0LWNvbnRleHQoLi4uKSAuc29tZS1jbGFzcyB7XG4gIC4uLlxufVxuXG4qXG4gIFNpZGUgbm90ZTpcbiAgOmhvc3QtY29udGV4dCgpOmhvc3Qgc2VsZWN0b3IgYXJlIHZhbGlkLiBodHRwczovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LXN0eWxlLzIwMTVGZWIvMDMwNS5odG1sXG5cbiAgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pOmhvc3QtY29udGV4dCguLi4pIHNob3VsZCBtYXRjaCBhbnkgcGVybXV0YXRpb24sXG4gIHNvIG9yZGVyIGlzIG5vdCBpbXBvcnRhbnQuXG4qXG5cblxuQ3VycmVudGx5LCB0aGVyZSdyZSB0d28gcHJvYmxlbXMgd2l0aCB0aGlzIGFwcHJvYWNoOlxuXG5GaXJzdCwgaXMgdGhhdCB3ZSBjYW4ndCBjb21iaW5lIDpob3N0LCA6aG9zdC1jb250ZXh0LiBBbmd1bGFyIGJ1Z3MgIzE0MzQ5LCAjMTkxOTkuXG5Gb3IgdGhlIG1vbWVudCBvZiB3cml0aW5nLCB0aGUgb25seSBwb3NzaWJsZSB3YXkgaXM6XG46aG9zdCB7XG4gIDpob3N0LWNvbnRleHQoLi4uKSB7XG4gICAgLi4uXG4gIH1cbn1cbkl0IGRvZXNuJ3Qgd29yayBmb3IgdXMgYmVjYXVzZSBtaXhpbiBjb3VsZCBiZSBjYWxsZWQgc29tZXdoZXJlIGRlZXBlciwgbGlrZTpcbjpob3N0IHtcbiAgcCB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkgeyAuLi4gfVxuICB9XG59XG5XZSBhcmUgbm90IGFibGUgdG8gZ28gdXAgdG8gOmhvc3QgbGV2ZWwgdG8gcGxhY2UgY29udGVudCBwYXNzZWQgdG8gbWl4aW4uXG5cblRoZSBzZWNvbmQgcHJvYmxlbSBpcyB0aGF0IHdlIG9ubHkgY2FuIGJlIHN1cmUgdGhhdCB3ZSBhcHBlbmRpbmcgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHRvIGFub3RoZXJcbjpob3N0Lzpob3N0LWNvbnRleHQgcHNldWRvLWNsYXNzIHdoZW4gY2FsbGVkIGluIHRoZW1lIGZpbGVzICgqLnRoZW1lLnNjc3MpLlxuICAqXG4gICAgU2lkZSBub3RlOlxuICAgIEN1cnJlbnRseSwgbmItaW5zdGFsbC1jb21wb25lbnQgdXNlcyBhbm90aGVyIGFwcHJvYWNoIHdoZXJlIDpob3N0IHByZXBlbmRlZCB3aXRoIHRoZSB0aGVtZSBuYW1lXG4gICAgKGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi81Yjk2MDc4NjI0YjBhNDc2MGYyZGJjZjZmZGYwYmQ2Mjc5MWJlNWJiL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy9zaGFkb3dfY3NzLnRzI0w0NDEpLFxuICAgIGJ1dCBpdCB3YXMgbWFkZSB0byBiZSBhYmxlIHRvIHVzZSBjdXJyZW50IHJlYWxpemF0aW9uIG9mIHJ0bCBhbmQgaXQgY2FuIGJlIHJld3JpdHRlbiBiYWNrIHRvXG4gICAgOmhvc3QtY29udGV4dCgkdGhlbWUpIG9uY2Ugd2Ugd2lsbCBiZSBhYmxlIHRvIHVzZSBtdWx0aXBsZSBzaGFkb3cgc2VsZWN0b3JzLlxuICAqXG5CdXQgd2hlbiBpdCdzIGNhbGxlZCBpbiAqLmNvbXBvbmVudC5zY3NzIHdlIGNhbid0IGJlIHN1cmUsIHRoYXQgc2VsZWN0b3Igc3RhcnRzIHdpdGggOmhvc3QvOmhvc3QtY29udGV4dCxcbmJlY2F1c2UgYW5ndWxhciBhbGxvd3Mgb21pdHRpbmcgcHNldWRvLWNsYXNzZXMgaWYgd2UgZG9uJ3QgbmVlZCB0byBzdHlsZSA6aG9zdCBjb21wb25lbnQgaXRzZWxmLlxuV2UgY2FuIGJyZWFrIHN1Y2ggc2VsZWN0b3JzLCBieSBqdXN0IGFwcGVuZGluZyA6aG9zdC1jb250ZXh0KFtkaXI9cnRsXSkgdG8gdGhlbS5cbiAgKioqXG4gICAgUG9zc2libGUgc29sdXRpb25cbiAgICBjaGVjayBpZiB3ZSBpbiB0aGVtZSBieSBzb21lIHRoZW1lIHZhcmlhYmxlcyBhbmQgaWYgc28gYXBwZW5kLCBvdGhlcndpc2UgbmVzdCBsaWtlXG4gICAgQGF0LXJvb3QgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHtcbiAgICAgIC8vIGFkZCAjIHRvIHNjc3MgaW50ZXJwb2xhdGlvbiBzdGF0ZW1lbnQuXG4gICAgICAvLyBpdCB3b3JrcyBpbiBjb21tZW50cyBhbmQgd2UgY2FuJ3QgdXNlIGl0IGhlcmVcbiAgICAgIHsmfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBXaGF0IGlmIDpob3N0IHNwZWNpZmllZD8gQ2FuIHdlIGFkZCBzcGFjZSBpbiA6aG9zdC1jb250ZXh0KC4uLikgOmhvc3Q/XG4gICAgT3IgbWF5YmUgYWRkIDpob3N0IHNlbGVjdG9yIGFueXdheT8gSWYgbXVsdGlwbGUgOmhvc3Qgc2VsZWN0b3JzIGFyZSBhbGxvd2VkXG4gICoqKlxuXG5cblByb2JsZW1zIHdpdGggdGhlIGN1cnJlbnQgYXBwcm9hY2guXG5cbjEuIERpcmVjdGlvbiBjYW4gYmUgYXBwbGllZCBvbmx5IG9uIGRvY3VtZW50IGxldmVsLCBiZWNhdXNlIG1peGluIHByZXBlbmRzIHRoZW1lIGNsYXNzLFxud2hpY2ggcGxhY2VkIG9uIHRoZSBib2R5LlxuMi4gKi5jb21wb25lbnQuc2NzcyBzdHlsZXMgc2hvdWxkIGJlIGluIDpob3N0IHNlbGVjdG9yLiBPdGhlcndpc2UgYW5ndWxhciB3aWxsIGFkZCBob3N0XG5hdHRyaWJ1dGUgdG8gW2Rpcj1ydGxdIGF0dHJpYnV0ZSBhcyB3ZWxsLlxuXG5cbkdlbmVyYWwgcHJvYmxlbXMuXG5cbkx0ciBpcyBkZWZhdWx0IGRvY3VtZW50IGRpcmVjdGlvbiwgYnV0IGZvciBwcm9wZXIgd29yayBvZiBuYi1sdHIgKG1lYW5zIGx0ciBvbmx5KSxcbltkaXI9bHRyXSBzaG91bGQgYmUgc3BlY2lmaWVkIGF0IGxlYXN0IHNvbWV3aGVyZS4gJzpub3QoW2Rpcj1ydGxdJyBub3QgYXBwbGljYWJsZSBoZXJlLFxuYmVjYXVzZSBpdCdzIHNhdGlzZnkgYW55IHBhcmVudCwgdGhhdCBkb24ndCBoYXZlIFtkaXI9cnRsXSBhdHRyaWJ1dGUuXG5QcmV2aW91cyBhcHByb2FjaCB3YXMgdG8gdXNlIHNpbmdsZSBydGwgbWl4aW4gYW5kIHJlc2V0IGx0ciBwcm9wZXJ0aWVzIHRvIGluaXRpYWwgdmFsdWUuXG5CdXQgc29tZXRpbWVzIGl0J3MgaGFyZCB0byBmaW5kLCB3aGF0IHRoZSBwcmV2aW91cyB2YWx1ZSBzaG91bGQgYmUuIEFuZCBzdWNoIG1peGluIGNhbGwgbG9va3MgdG9vIHZlcmJvc2UuXG4qL1xuXG5AbWl4aW4gX3ByZXBlbmQtd2l0aC1zZWxlY3Rvcigkc2VsZWN0b3IsICRwcm9wOiBudWxsLCAkdmFsdWU6IG51bGwpIHtcbiAgI3skc2VsZWN0b3J9ICYge1xuICAgIEBpZiAkcHJvcCAhPSBudWxsIHtcbiAgICAgICN7JHByb3B9OiAkdmFsdWU7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIG5iLWx0cigkcHJvcDogbnVsbCwgJHZhbHVlOiBudWxsKSB7XG4gIEBpbmNsdWRlIF9wcmVwZW5kLXdpdGgtc2VsZWN0b3IoJ1tkaXI9bHRyXScsICRwcm9wLCAkdmFsdWUpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbmItcnRsKCRwcm9wOiBudWxsLCAkdmFsdWU6IG51bGwpIHtcbiAgQGluY2x1ZGUgX3ByZXBlbmQtd2l0aC1zZWxlY3RvcignW2Rpcj1ydGxdJywgJHByb3AsICR2YWx1ZSkge1xuICAgIEBjb250ZW50O1xuICB9O1xufVxuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuXG4vLy8gU2xpZ2h0bHkgbGlnaHRlbiBhIGNvbG9yXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBjb2xvciB0byB0aW50XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwZXJjZW50YWdlIC0gcGVyY2VudGFnZSBvZiBgJGNvbG9yYCBpbiByZXR1cm5lZCBjb2xvclxuLy8vIEByZXR1cm4ge0NvbG9yfVxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudGFnZSkge1xuICBAcmV0dXJuIG1peCh3aGl0ZSwgJGNvbG9yLCAkcGVyY2VudGFnZSk7XG59XG5cbi8vLyBTbGlnaHRseSBkYXJrZW4gYSBjb2xvclxuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gY29sb3IgdG8gc2hhZGVcbi8vLyBAcGFyYW0ge051bWJlcn0gJHBlcmNlbnRhZ2UgLSBwZXJjZW50YWdlIG9mIGAkY29sb3JgIGluIHJldHVybmVkIGNvbG9yXG4vLy8gQHJldHVybiB7Q29sb3J9XG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudGFnZSkge1xuICBAcmV0dXJuIG1peChibGFjaywgJGNvbG9yLCAkcGVyY2VudGFnZSk7XG59XG5cbkBmdW5jdGlvbiBtYXAtc2V0KCRtYXAsICRrZXksICR2YWx1ZTogbnVsbCkge1xuICAkbmV3OiAoJGtleTogJHZhbHVlKTtcbiAgQHJldHVybiBtYXAtbWVyZ2UoJG1hcCwgJG5ldyk7XG59XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWt2ZW8uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICovXG5cbkBpbXBvcnQgJy4uL2NvcmUvZnVuY3Rpb25zJztcbkBpbXBvcnQgJy4uL2NvcmUvbWl4aW5zJztcblxuJHRoZW1lOiAoXG4gIGZvbnQtbWFpbjogdW5xdW90ZSgnXCJTZWdvZSBVSVwiLCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIHNhbnMtc2VyaWYnKSxcbiAgZm9udC1zZWNvbmRhcnk6IGZvbnQtbWFpbixcblxuICBmb250LXdlaWdodC10aGluOiAyMDAsXG4gIGZvbnQtd2VpZ2h0LWxpZ2h0OiAzMDAsXG4gIGZvbnQtd2VpZ2h0LW5vcm1hbDogNDAwLFxuICBmb250LXdlaWdodC1ib2xkZXI6IDUwMCxcbiAgZm9udC13ZWlnaHQtYm9sZDogNjAwLFxuICBmb250LXdlaWdodC11bHRyYS1ib2xkOiA4MDAsXG5cbiAgLy8gVE9ETzogdXNlIGl0IGFzIGEgZGVmYXVsdCBmb250LXNpemVcbiAgYmFzZS1mb250LXNpemU6IDE2cHgsXG5cbiAgZm9udC1zaXplLXhsZzogMS4yNXJlbSxcbiAgZm9udC1zaXplLWxnOiAxLjEyNXJlbSxcbiAgZm9udC1zaXplOiAxcmVtLFxuICBmb250LXNpemUtc206IDAuODc1cmVtLFxuICBmb250LXNpemUteHM6IDAuNzVyZW0sXG5cbiAgcmFkaXVzOiAwLjM3NXJlbSxcbiAgcGFkZGluZzogMS4yNXJlbSxcbiAgbWFyZ2luOiAxLjVyZW0sXG4gIGxpbmUtaGVpZ2h0OiAxLjI1LFxuXG4gIGNvbG9yLWJnOiAjZmZmZmZmLFxuICBjb2xvci1iZy1hY3RpdmU6ICNlOWVkZjIsXG4gIGNvbG9yLWZnOiAjYTRhYmIzLFxuICBjb2xvci1mZy1oZWFkaW5nOiAjMmEyYTJhLFxuICBjb2xvci1mZy10ZXh0OiAjNGI0YjRiLFxuICBjb2xvci1mZy1oaWdobGlnaHQ6ICM0MGRjN2UsXG5cbiAgc2VwYXJhdG9yOiAjZWJlZWYyLFxuXG4gIGNvbG9yLWdyYXk6IHJnYmEoODEsIDExMywgMTY1LCAwLjE1KSxcbiAgY29sb3ItbmV1dHJhbDogdHJhbnNwYXJlbnQsXG4gIGNvbG9yLXdoaXRlOiAjZmZmZmZmLFxuICBjb2xvci1kaXNhYmxlZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpLFxuXG4gIGNvbG9yLXByaW1hcnk6ICM4YTdmZmYsXG4gIGNvbG9yLXN1Y2Nlc3M6ICM0MGRjN2UsXG4gIGNvbG9yLWluZm86ICM0Y2E2ZmYsXG4gIGNvbG9yLXdhcm5pbmc6ICNmZmExMDAsXG4gIGNvbG9yLWRhbmdlcjogI2ZmNGM2YSxcblxuICAvLyBUT0RPOiBtb3ZlIHRvIGNvbnN0YW50c1xuICBzb2NpYWwtY29sb3ItZmFjZWJvb2s6ICMzYjU5OTgsXG4gIHNvY2lhbC1jb2xvci10d2l0dGVyOiAjNTVhY2VlLFxuICBzb2NpYWwtY29sb3ItZ29vZ2xlOiAjZGQ0YjM5LFxuICBzb2NpYWwtY29sb3ItbGlua2VkaW46ICMwMTc3YjUsXG4gIHNvY2lhbC1jb2xvci1naXRodWI6ICM2YjZiNmIsXG4gIHNvY2lhbC1jb2xvci1zdGFja292ZXJmbG93OiAjMmY5NmU4LFxuICBzb2NpYWwtY29sb3ItZHJpYmJsZTogI2YyNjc5OCxcbiAgc29jaWFsLWNvbG9yLWJlaGFuY2U6ICMwMDkzZmEsXG5cbiAgYm9yZGVyLWNvbG9yOiBjb2xvci1ncmF5LFxuICBzaGFkb3c6IDAgMnB4IDEycHggMCAjZGZlM2ViLFxuXG4gIGxpbmstY29sb3I6ICMzZGNjNmQsXG4gIGxpbmstY29sb3ItaG92ZXI6ICMyZWU1NmIsXG4gIGxpbmstY29sb3ItdmlzaXRlZDogbGluay1jb2xvcixcblxuICBzY3JvbGxiYXItZmc6ICNkYWRhZGEsXG4gIHNjcm9sbGJhci1iZzogI2YyZjJmMixcbiAgc2Nyb2xsYmFyLXdpZHRoOiA1cHgsXG4gIHNjcm9sbGJhci10aHVtYi1yYWRpdXM6IDIuNXB4LFxuXG4gIHJhZGlhbC1ncmFkaWVudDogbm9uZSxcbiAgbGluZWFyLWdyYWRpZW50OiBub25lLFxuXG4gIGNhcmQtZm9udC1zaXplOiBmb250LXNpemUsXG4gIGNhcmQtbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0LFxuICBjYXJkLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ub3JtYWwsXG4gIGNhcmQtZmc6IGNvbG9yLWZnLCAvLyBUT0RPOiBub3QgdXNlZFxuICBjYXJkLWZnLXRleHQ6IGNvbG9yLWZnLXRleHQsXG4gIGNhcmQtZmctaGVhZGluZzogY29sb3ItZmctaGVhZGluZywgLy8gVE9ETzogbm90IHVzZWRcbiAgY2FyZC1iZzogY29sb3ItYmcsXG4gIGNhcmQtaGVpZ2h0LXh4c21hbGw6IDk2cHgsXG4gIGNhcmQtaGVpZ2h0LXhzbWFsbDogMjE2cHgsXG4gIGNhcmQtaGVpZ2h0LXNtYWxsOiAzMzZweCxcbiAgY2FyZC1oZWlnaHQtbWVkaXVtOiA0NTZweCxcbiAgY2FyZC1oZWlnaHQtbGFyZ2U6IDU3NnB4LFxuICBjYXJkLWhlaWdodC14bGFyZ2U6IDY5NnB4LFxuICBjYXJkLWhlaWdodC14eGxhcmdlOiA4MTZweCxcbiAgY2FyZC1zaGFkb3c6IHNoYWRvdyxcbiAgY2FyZC1ib3JkZXItd2lkdGg6IDAsXG4gIGNhcmQtYm9yZGVyLXR5cGU6IHNvbGlkLFxuICBjYXJkLWJvcmRlci1jb2xvcjogY29sb3ItYmcsXG4gIGNhcmQtYm9yZGVyLXJhZGl1czogcmFkaXVzLFxuICBjYXJkLXBhZGRpbmc6IHBhZGRpbmcsXG4gIGNhcmQtbWFyZ2luOiBtYXJnaW4sXG4gIGNhcmQtaGVhZGVyLWZvbnQtZmFtaWx5OiBmb250LXNlY29uZGFyeSxcbiAgY2FyZC1oZWFkZXItZm9udC1zaXplOiBmb250LXNpemUtbGcsXG4gIGNhcmQtaGVhZGVyLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ib2xkLFxuICBjYXJkLXNlcGFyYXRvcjogc2VwYXJhdG9yLFxuICBjYXJkLWhlYWRlci1mZzogY29sb3ItZmcsIC8vIFRPRE86IG5vdCB1c2VkXG4gIGNhcmQtaGVhZGVyLWZnLWhlYWRpbmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIGNhcmQtaGVhZGVyLWFjdGl2ZS1iZzogY29sb3ItZmcsXG4gIGNhcmQtaGVhZGVyLWFjdGl2ZS1mZzogY29sb3ItYmcsXG4gIGNhcmQtaGVhZGVyLWRpc2FibGVkLWJnOiBjb2xvci1kaXNhYmxlZCxcbiAgY2FyZC1oZWFkZXItcHJpbWFyeS1iZzogY29sb3ItcHJpbWFyeSxcbiAgY2FyZC1oZWFkZXItaW5mby1iZzogY29sb3ItaW5mbyxcbiAgY2FyZC1oZWFkZXItc3VjY2Vzcy1iZzogY29sb3Itc3VjY2VzcyxcbiAgY2FyZC1oZWFkZXItd2FybmluZy1iZzogY29sb3Itd2FybmluZyxcbiAgY2FyZC1oZWFkZXItZGFuZ2VyLWJnOiBjb2xvci1kYW5nZXIsXG4gIGNhcmQtaGVhZGVyLWJvcmRlci13aWR0aDogMXB4LFxuICBjYXJkLWhlYWRlci1ib3JkZXItdHlwZTogc29saWQsXG4gIGNhcmQtaGVhZGVyLWJvcmRlci1jb2xvcjogY2FyZC1zZXBhcmF0b3IsXG5cbiAgaGVhZGVyLWZvbnQtZmFtaWx5OiBmb250LXNlY29uZGFyeSxcbiAgaGVhZGVyLWZvbnQtc2l6ZTogZm9udC1zaXplLFxuICBoZWFkZXItbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0LFxuICBoZWFkZXItZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIGhlYWRlci1iZzogY29sb3ItYmcsXG4gIGhlYWRlci1oZWlnaHQ6IDQuNzVyZW0sXG4gIGhlYWRlci1wYWRkaW5nOiAxLjI1cmVtLFxuICBoZWFkZXItc2hhZG93OiBzaGFkb3csXG5cbiAgZm9vdGVyLWhlaWdodDogNC43MjVyZW0sXG4gIGZvb3Rlci1wYWRkaW5nOiAxLjI1cmVtLFxuICBmb290ZXItZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIGZvb3Rlci1mZy1oaWdobGlnaHQ6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIGZvb3Rlci1iZzogY29sb3ItYmcsXG4gIGZvb3Rlci1zZXBhcmF0b3I6IHNlcGFyYXRvcixcbiAgZm9vdGVyLXNoYWRvdzogc2hhZG93LFxuXG4gIGxheW91dC1mb250LWZhbWlseTogZm9udC1tYWluLFxuICBsYXlvdXQtZm9udC1zaXplOiBmb250LXNpemUsXG4gIGxheW91dC1saW5lLWhlaWdodDogbGluZS1oZWlnaHQsXG4gIGxheW91dC1mZzogY29sb3ItZmcsXG4gIGxheW91dC1iZzogI2ViZWZmNSxcbiAgbGF5b3V0LW1pbi1oZWlnaHQ6IDEwMHZoLFxuICBsYXlvdXQtY29udGVudC13aWR0aDogOTAwcHgsXG4gIGxheW91dC13aW5kb3ctbW9kZS1taW4td2lkdGg6IDMwMHB4LFxuICBsYXlvdXQtd2luZG93LW1vZGUtbWF4LXdpZHRoOiAxOTIwcHgsXG4gIGxheW91dC13aW5kb3ctbW9kZS1iZzogbGF5b3V0LWJnLFxuICBsYXlvdXQtd2luZG93LW1vZGUtcGFkZGluZy10b3A6IDQuNzVyZW0sXG4gIGxheW91dC13aW5kb3ctc2hhZG93OiBzaGFkb3csXG4gIGxheW91dC1wYWRkaW5nOiAyLjI1cmVtIDIuMjVyZW0gMC43NXJlbSxcbiAgbGF5b3V0LW1lZGl1bS1wYWRkaW5nOiAxLjVyZW0gMS41cmVtIDAuNXJlbSxcbiAgbGF5b3V0LXNtYWxsLXBhZGRpbmc6IDFyZW0gMXJlbSAwLFxuXG4gIHNpZGViYXItZm9udC1zaXplOiBmb250LXNpemUsXG4gIHNpZGViYXItbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0LFxuICBzaWRlYmFyLWZnOiBjb2xvci1mZy1oZWFkaW5nLFxuICBzaWRlYmFyLWJnOiBjb2xvci1iZyxcbiAgc2lkZWJhci1oZWlnaHQ6IDEwMHZoLFxuICBzaWRlYmFyLXdpZHRoOiAxNnJlbSxcbiAgc2lkZWJhci13aWR0aC1jb21wYWN0OiAzLjVyZW0sXG4gIHNpZGViYXItcGFkZGluZzogcGFkZGluZyxcbiAgc2lkZWJhci1oZWFkZXItaGVpZ2h0OiAzLjVyZW0sXG4gIHNpZGViYXItZm9vdGVyLWhlaWdodDogMy41cmVtLFxuICBzaWRlYmFyLXNoYWRvdzogc2hhZG93LFxuXG4gIG1lbnUtZm9udC1mYW1pbHk6IGZvbnQtc2Vjb25kYXJ5LFxuICBtZW51LWZvbnQtc2l6ZTogZm9udC1zaXplLFxuICBtZW51LWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ib2xkZXIsXG4gIG1lbnUtZmc6IGNvbG9yLWZnLXRleHQsXG4gIG1lbnUtYmc6IGNvbG9yLWJnLFxuICBtZW51LWFjdGl2ZS1mZzogY29sb3ItZmctaGVhZGluZyxcbiAgbWVudS1hY3RpdmUtYmc6IGNvbG9yLWJnLFxuICBtZW51LWFjdGl2ZS1mb250LXdlaWdodDogZm9udC13ZWlnaHQtYm9sZCxcblxuICBtZW51LXN1Ym1lbnUtYmc6IGNvbG9yLWJnLFxuICBtZW51LXN1Ym1lbnUtZmc6IGNvbG9yLWZnLXRleHQsXG4gIG1lbnUtc3VibWVudS1hY3RpdmUtZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIG1lbnUtc3VibWVudS1hY3RpdmUtYmc6IGNvbG9yLWJnLFxuICBtZW51LXN1Ym1lbnUtYWN0aXZlLWJvcmRlci1jb2xvcjogY29sb3ItZmctaGlnaGxpZ2h0LFxuICBtZW51LXN1Ym1lbnUtYWN0aXZlLXNoYWRvdzogbm9uZSxcbiAgbWVudS1zdWJtZW51LWhvdmVyLWZnOiBtZW51LXN1Ym1lbnUtYWN0aXZlLWZnLFxuICBtZW51LXN1Ym1lbnUtaG92ZXItYmc6IG1lbnUtc3VibWVudS1iZyxcbiAgbWVudS1zdWJtZW51LWl0ZW0tYm9yZGVyLXdpZHRoOiAwLjEyNXJlbSxcbiAgbWVudS1zdWJtZW51LWl0ZW0tYm9yZGVyLXJhZGl1czogcmFkaXVzLFxuICBtZW51LXN1Ym1lbnUtaXRlbS1wYWRkaW5nOiAwLjVyZW0gMXJlbSxcbiAgbWVudS1zdWJtZW51LWl0ZW0tY29udGFpbmVyLXBhZGRpbmc6IDAgMS4yNXJlbSxcbiAgbWVudS1zdWJtZW51LXBhZGRpbmc6IDAuNXJlbSxcblxuICBtZW51LWdyb3VwLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ib2xkZXIsXG4gIG1lbnUtZ3JvdXAtZm9udC1zaXplOiAwLjg3NXJlbSxcbiAgbWVudS1ncm91cC1mZzogY29sb3ItZmcsXG4gIG1lbnUtZ3JvdXAtcGFkZGluZzogMXJlbSAxLjI1cmVtLFxuICBtZW51LWl0ZW0tcGFkZGluZzogMC42NzVyZW0gMC43NXJlbSxcbiAgbWVudS1pdGVtLXNlcGFyYXRvcjogc2VwYXJhdG9yLFxuICBtZW51LWljb24tZm9udC1zaXplOiAyLjVyZW0sXG4gIG1lbnUtaWNvbi1tYXJnaW46IDAgMC4yNXJlbSAwLFxuICBtZW51LWljb24tY29sb3I6IGNvbG9yLWZnLFxuICBtZW51LWljb24tYWN0aXZlLWNvbG9yOiBjb2xvci1mZy1oZWFkaW5nLFxuXG4gIHRhYnMtZm9udC1mYW1pbHk6IGZvbnQtc2Vjb25kYXJ5LFxuICB0YWJzLWZvbnQtc2l6ZTogZm9udC1zaXplLWxnLFxuICB0YWJzLWNvbnRlbnQtZm9udC1mYW1pbHk6IGZvbnQtbWFpbixcbiAgdGFicy1jb250ZW50LWZvbnQtc2l6ZTogZm9udC1zaXplLFxuICB0YWJzLWFjdGl2ZS1iZzogdHJhbnNwYXJlbnQsXG4gIHRhYnMtYWN0aXZlLWZvbnQtd2VpZ2h0OiBjYXJkLWhlYWRlci1mb250LXdlaWdodCxcbiAgdGFicy1wYWRkaW5nOiBwYWRkaW5nLFxuICB0YWJzLWNvbnRlbnQtcGFkZGluZzogMCxcbiAgdGFicy1oZWFkZXItYmc6IHRyYW5zcGFyZW50LFxuICB0YWJzLXNlcGFyYXRvcjogc2VwYXJhdG9yLFxuICB0YWJzLWZnOiBjb2xvci1mZyxcbiAgdGFicy1mZy10ZXh0OiBjb2xvci1mZy10ZXh0LFxuICB0YWJzLWZnLWhlYWRpbmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIHRhYnMtYmc6IHRyYW5zcGFyZW50LFxuICB0YWJzLXNlbGVjdGVkOiBjb2xvci1zdWNjZXNzLFxuICB0YWJzLXNlbGVjdGVkLXNlY29uZC1jb2xvcjogY29sb3Itc3VjY2VzcyxcbiAgdGFicy1zZWxlY3RlZC1kZWdyZWVzOiAwLFxuICB0YWJzLWljb24tb25seS1tYXgtd2lkdGg6IDU3NnB4LFxuXG4gIHJvdXRlLXRhYnMtZm9udC1mYW1pbHk6IGZvbnQtc2Vjb25kYXJ5LFxuICByb3V0ZS10YWJzLWZvbnQtc2l6ZTogZm9udC1zaXplLWxnLFxuICByb3V0ZS10YWJzLWFjdGl2ZS1iZzogdHJhbnNwYXJlbnQsXG4gIHJvdXRlLXRhYnMtYWN0aXZlLWZvbnQtd2VpZ2h0OiBjYXJkLWhlYWRlci1mb250LXdlaWdodCxcbiAgcm91dGUtdGFicy1wYWRkaW5nOiBwYWRkaW5nLFxuICByb3V0ZS10YWJzLWhlYWRlci1iZzogdHJhbnNwYXJlbnQsXG4gIHJvdXRlLXRhYnMtc2VwYXJhdG9yOiBzZXBhcmF0b3IsXG4gIHJvdXRlLXRhYnMtZmc6IGNvbG9yLWZnLFxuICByb3V0ZS10YWJzLWZnLWhlYWRpbmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIHJvdXRlLXRhYnMtYmc6IHRyYW5zcGFyZW50LFxuICByb3V0ZS10YWJzLXNlbGVjdGVkOiBjb2xvci1zdWNjZXNzLFxuICByb3V0ZS10YWJzLWljb24tb25seS1tYXgtd2lkdGg6IDU3NnB4LFxuXG4gIHVzZXItZm9udC1zaXplOiBmb250LXNpemUsXG4gIHVzZXItbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0LFxuICB1c2VyLWJnOiBjb2xvci1iZyxcbiAgdXNlci1mZzogY29sb3ItZmcsXG4gIHVzZXItZmctaGlnaGxpZ2h0OiAjYmNjM2NjLFxuICB1c2VyLWZvbnQtZmFtaWx5LXNlY29uZGFyeTogZm9udC1zZWNvbmRhcnksXG4gIHVzZXItc2l6ZS1zbWFsbDogMS41cmVtLFxuICB1c2VyLXNpemUtbWVkaXVtOiAyLjVyZW0sXG4gIHVzZXItc2l6ZS1sYXJnZTogMy4yNXJlbSxcbiAgdXNlci1zaXplLXhsYXJnZTogNHJlbSxcblxuICBwb3BvdmVyLWZnOiBjb2xvci1mZy1oZWFkaW5nLFxuICBwb3BvdmVyLWJnOiBjb2xvci1iZyxcbiAgcG9wb3Zlci1ib3JkZXI6IGNvbG9yLXN1Y2Nlc3MsXG4gIHBvcG92ZXItYm9yZGVyLXJhZGl1czogcmFkaXVzLFxuICBwb3BvdmVyLXNoYWRvdzogbm9uZSxcbiAgcG9wb3Zlci1hcnJvdy1zaXplOiAxMXB4LFxuXG4gIGNvbnRleHQtbWVudS1mZzogY29sb3ItZmctaGVhZGluZyxcbiAgY29udGV4dC1tZW51LWJnOiBjb2xvci1iZyxcbiAgY29udGV4dC1tZW51LWFjdGl2ZS1mZzogY29sb3Itd2hpdGUsXG4gIGNvbnRleHQtbWVudS1hY3RpdmUtYmc6IGNvbG9yLXN1Y2Nlc3MsXG4gIGNvbnRleHQtbWVudS1ib3JkZXI6IGNvbG9yLXN1Y2Nlc3MsXG4gIGNvbnRleHQtbWVudS1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG4gIGNvbnRleHQtbWVudS1zaGFkb3c6IG5vbmUsXG4gIGNvbnRleHQtbWVudS1hcnJvdy1zaXplOiAxMXB4LFxuXG4gIGFjdGlvbnMtZm9udC1zaXplOiBmb250LXNpemUsXG4gIGFjdGlvbnMtZm9udC1mYW1pbHk6IGZvbnQtc2Vjb25kYXJ5LFxuICBhY3Rpb25zLWxpbmUtaGVpZ2h0OiBsaW5lLWhlaWdodCxcbiAgYWN0aW9ucy1mZzogY29sb3ItZmcsXG4gIGFjdGlvbnMtYmc6IGNvbG9yLWJnLFxuICBhY3Rpb25zLXNlcGFyYXRvcjogc2VwYXJhdG9yLFxuICBhY3Rpb25zLXBhZGRpbmc6IHBhZGRpbmcsXG4gIGFjdGlvbnMtc2l6ZS1zbWFsbDogMS41cmVtLFxuICBhY3Rpb25zLXNpemUtbWVkaXVtOiAyLjI1cmVtLFxuICBhY3Rpb25zLXNpemUtbGFyZ2U6IDMuNXJlbSxcblxuICBzZWFyY2gtYnRuLW9wZW4tZmc6IGNvbG9yLWZnLFxuICBzZWFyY2gtYnRuLWNsb3NlLWZnOlx0Y29sb3ItZmcsXG4gIHNlYXJjaC1iZzogbGF5b3V0LWJnLFxuICBzZWFyY2gtYmctc2Vjb25kYXJ5OiBjb2xvci1mZyxcbiAgc2VhcmNoLXRleHQ6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIHNlYXJjaC1pbmZvOiBjb2xvci1mZyxcbiAgc2VhcmNoLWRhc2g6IGNvbG9yLWZnLFxuICBzZWFyY2gtcGxhY2Vob2xkZXI6IGNvbG9yLWZnLFxuXG4gIHNtYXJ0LXRhYmxlLWhlYWRlci1mb250LWZhbWlseTogZm9udC1zZWNvbmRhcnksXG4gIHNtYXJ0LXRhYmxlLWhlYWRlci1mb250LXNpemU6IGZvbnQtc2l6ZSxcbiAgc21hcnQtdGFibGUtaGVhZGVyLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ib2xkLFxuICBzbWFydC10YWJsZS1oZWFkZXItbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0LFxuICBzbWFydC10YWJsZS1oZWFkZXItZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIHNtYXJ0LXRhYmxlLWhlYWRlci1iZzogY29sb3ItYmcsXG5cbiAgc21hcnQtdGFibGUtZm9udC1mYW1pbHk6IGZvbnQtbWFpbixcbiAgc21hcnQtdGFibGUtZm9udC1zaXplOiBmb250LXNpemUsXG4gIHNtYXJ0LXRhYmxlLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ub3JtYWwsXG4gIHNtYXJ0LXRhYmxlLWxpbmUtaGVpZ2h0OiBsaW5lLWhlaWdodCxcbiAgc21hcnQtdGFibGUtZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIHNtYXJ0LXRhYmxlLWJnOiBjb2xvci1iZyxcblxuICBzbWFydC10YWJsZS1iZy1ldmVuOiAjZjVmN2ZjLFxuICBzbWFydC10YWJsZS1mZy1zZWNvbmRhcnk6IGNvbG9yLWZnLFxuICBzbWFydC10YWJsZS1iZy1hY3RpdmU6ICNlNmYzZmYsXG4gIHNtYXJ0LXRhYmxlLXBhZGRpbmc6IDAuODc1cmVtIDEuMjVyZW0sXG4gIHNtYXJ0LXRhYmxlLWZpbHRlci1wYWRkaW5nOiAwLjM3NXJlbSAwLjVyZW0sXG4gIHNtYXJ0LXRhYmxlLXNlcGFyYXRvcjogc2VwYXJhdG9yLFxuICBzbWFydC10YWJsZS1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG5cbiAgc21hcnQtdGFibGUtcGFnaW5nLWJvcmRlci1jb2xvcjogc2VwYXJhdG9yLFxuICBzbWFydC10YWJsZS1wYWdpbmctYm9yZGVyLXdpZHRoOiAxcHgsXG4gIHNtYXJ0LXRhYmxlLXBhZ2luZy1mZy1hY3RpdmU6ICNmZmZmZmYsXG4gIHNtYXJ0LXRhYmxlLXBhZ2luZy1iZy1hY3RpdmU6IGNvbG9yLXN1Y2Nlc3MsXG4gIHNtYXJ0LXRhYmxlLXBhZ2luZy1ob3ZlcjogcmdiYSgwLCAwLCAwLCAwLjA1KSxcblxuICB0b2FzdHItYmc6IGNvbG9yLWJnLFxuICB0b2FzdHItcGFkZGluZzogMS4xMjVyZW0sXG4gIHRvYXN0ci1mZzogY29sb3ItZmctdGV4dCxcbiAgdG9hc3RyLWJvcmRlcjogMC4xMjVyZW0gc29saWQsXG4gIHRvYXN0ci1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG4gIHRvYXN0ci1ib3JkZXItY29sb3I6ICNiY2MzY2MsXG4gIHRvYXN0ci1pY29uLXJhZGl1czogMC4yNXJlbSxcbiAgdG9hc3RyLXNoYWRvdzogc2hhZG93LFxuXG4gIGJ0bi1mZzogY29sb3Itd2hpdGUsXG4gIGJ0bi1mb250LWZhbWlseTogZm9udC1zZWNvbmRhcnksXG4gIGJ0bi1saW5lLWhlaWdodDogbGluZS1oZWlnaHQsXG4gIGJ0bi1kaXNhYmxlZC1vcGFjaXR5OiAwLjMsXG4gIGJ0bi1jdXJzb3I6IGRlZmF1bHQsXG5cbiAgYnRuLXByaW1hcnktYmc6IGNvbG9yLXByaW1hcnksXG4gIGJ0bi1zZWNvbmRhcnktYmc6IHRyYW5zcGFyZW50LFxuICBidG4taW5mby1iZzogY29sb3ItaW5mbyxcbiAgYnRuLXN1Y2Nlc3MtYmc6IGNvbG9yLXN1Y2Nlc3MsXG4gIGJ0bi13YXJuaW5nLWJnOiBjb2xvci13YXJuaW5nLFxuICBidG4tZGFuZ2VyLWJnOiBjb2xvci1kYW5nZXIsXG5cbiAgYnRuLXNlY29uZGFyeS1ib3JkZXI6ICNkYWRmZTYsXG4gIGJ0bi1zZWNvbmRhcnktYm9yZGVyLXdpZHRoOiAycHgsXG5cbiAgYnRuLXBhZGRpbmcteS1sZzogMC44NzVyZW0sXG4gIGJ0bi1wYWRkaW5nLXgtbGc6IDEuNzVyZW0sXG4gIGJ0bi1mb250LXNpemUtbGc6IGZvbnQtc2l6ZS1sZyxcblxuICAvLyBkZWZhdWx0IHNpemVcbiAgYnRuLXBhZGRpbmcteS1tZDogMC43NXJlbSxcbiAgYnRuLXBhZGRpbmcteC1tZDogMS41cmVtLFxuICBidG4tZm9udC1zaXplLW1kOiAxcmVtLFxuXG4gIGJ0bi1wYWRkaW5nLXktc206IDAuNjI1cmVtLFxuICBidG4tcGFkZGluZy14LXNtOiAxLjVyZW0sXG4gIGJ0bi1mb250LXNpemUtc206IDAuODc1cmVtLFxuXG4gIGJ0bi1wYWRkaW5nLXkteHM6IDAuNXJlbSxcbiAgYnRuLXBhZGRpbmcteC14czogMS4yNXJlbSxcbiAgYnRuLWZvbnQtc2l6ZS14czogMC43NXJlbSxcblxuICBidG4tYm9yZGVyLXJhZGl1czogcmFkaXVzLFxuICBidG4tcmVjdGFuZ2xlLWJvcmRlci1yYWRpdXM6IDAuMjVyZW0sXG4gIGJ0bi1zZW1pLXJvdW5kLWJvcmRlci1yYWRpdXM6IDAuNzVyZW0sXG4gIGJ0bi1yb3VuZC1ib3JkZXItcmFkaXVzOiAxLjVyZW0sXG5cbiAgYnRuLWhlcm8tc2hhZG93OiBub25lLFxuICBidG4taGVyby10ZXh0LXNoYWRvdzogbm9uZSxcbiAgYnRuLWhlcm8tYmV2ZWwtc2l6ZTogMCAwIDAgMCxcbiAgYnRuLWhlcm8tZ2xvdy1zaXplOiAwIDAgMCAwLFxuICBidG4taGVyby1wcmltYXJ5LWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby1zdWNjZXNzLWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby13YXJuaW5nLWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby1pbmZvLWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby1kYW5nZXItZ2xvdy1zaXplOiBidG4taGVyby1nbG93LXNpemUsXG4gIGJ0bi1oZXJvLXNlY29uZGFyeS1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLWhlcm8tZGVncmVlOiAyMGRlZyxcbiAgYnRuLWhlcm8tcHJpbWFyeS1kZWdyZWU6IGJ0bi1oZXJvLWRlZ3JlZSxcbiAgYnRuLWhlcm8tc3VjY2Vzcy1kZWdyZWU6IGJ0bi1oZXJvLWRlZ3JlZSxcbiAgYnRuLWhlcm8td2FybmluZy1kZWdyZWU6IDEwZGVnLFxuICBidG4taGVyby1pbmZvLWRlZ3JlZTogLTEwZGVnLFxuICBidG4taGVyby1kYW5nZXItZGVncmVlOiAtMjBkZWcsXG4gIGJ0bi1oZXJvLXNlY29uZGFyeS1kZWdyZWU6IGJ0bi1oZXJvLWRlZ3JlZSxcbiAgYnRuLWhlcm8tYm9yZGVyLXJhZGl1czogcmFkaXVzLFxuXG4gIGJ0bi1vdXRsaW5lLWZnOiBjb2xvci1mZy1oZWFkaW5nLFxuICBidG4tb3V0bGluZS1ob3Zlci1mZzogI2ZmZmZmZixcbiAgYnRuLW91dGxpbmUtZm9jdXMtZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG5cbiAgYnRuLWdyb3VwLWJnOiBsYXlvdXQtYmcsXG4gIGJ0bi1ncm91cC1mZzogY29sb3ItZmctaGVhZGluZyxcbiAgYnRuLWdyb3VwLXNlcGFyYXRvcjogI2RhZGZlNixcblxuICBmb3JtLWNvbnRyb2wtdGV4dC1wcmltYXJ5LWNvbG9yOiBjb2xvci1mZy1oZWFkaW5nLFxuICBmb3JtLWNvbnRyb2wtYmc6IGNvbG9yLWJnLFxuICBmb3JtLWNvbnRyb2wtZm9jdXMtYmc6IGNvbG9yLWJnLFxuXG4gIGZvcm0tY29udHJvbC1ib3JkZXItd2lkdGg6IDJweCxcbiAgZm9ybS1jb250cm9sLWJvcmRlci10eXBlOiBzb2xpZCxcbiAgZm9ybS1jb250cm9sLWJvcmRlci1yYWRpdXM6IHJhZGl1cyxcbiAgZm9ybS1jb250cm9sLXNlbWktcm91bmQtYm9yZGVyLXJhZGl1czogMC43NXJlbSxcbiAgZm9ybS1jb250cm9sLXJvdW5kLWJvcmRlci1yYWRpdXM6IDEuNXJlbSxcbiAgZm9ybS1jb250cm9sLWJvcmRlci1jb2xvcjogI2RhZGZlNixcbiAgZm9ybS1jb250cm9sLXNlbGVjdGVkLWJvcmRlci1jb2xvcjogY29sb3Itc3VjY2VzcyxcblxuICBmb3JtLWNvbnRyb2wtaW5mby1ib3JkZXItY29sb3I6IGNvbG9yLWluZm8sXG4gIGZvcm0tY29udHJvbC1zdWNjZXNzLWJvcmRlci1jb2xvcjogY29sb3Itc3VjY2VzcyxcbiAgZm9ybS1jb250cm9sLWRhbmdlci1ib3JkZXItY29sb3I6IGNvbG9yLWRhbmdlcixcbiAgZm9ybS1jb250cm9sLXdhcm5pbmctYm9yZGVyLWNvbG9yOiBjb2xvci13YXJuaW5nLFxuXG4gIGZvcm0tY29udHJvbC1wbGFjZWhvbGRlci1jb2xvcjogY29sb3ItZmcsXG4gIGZvcm0tY29udHJvbC1wbGFjZWhvbGRlci1mb250LXNpemU6IDFyZW0sXG5cbiAgZm9ybS1jb250cm9sLWZvbnQtc2l6ZTogMXJlbSxcbiAgZm9ybS1jb250cm9sLXBhZGRpbmc6IDAuNzVyZW0gMS4xMjVyZW0sXG4gIGZvcm0tY29udHJvbC1mb250LXNpemUtc206IGZvbnQtc2l6ZS1zbSxcbiAgZm9ybS1jb250cm9sLXBhZGRpbmctc206IDAuMzc1cmVtIDEuMTI1cmVtLFxuICBmb3JtLWNvbnRyb2wtZm9udC1zaXplLWxnOiBmb250LXNpemUtbGcsXG4gIGZvcm0tY29udHJvbC1wYWRkaW5nLWxnOiAxLjEyNXJlbSxcblxuICBmb3JtLWNvbnRyb2wtbGFiZWwtZm9udC13ZWlnaHQ6IDQwMCxcblxuICBmb3JtLWNvbnRyb2wtZmVlZGJhY2stZm9udC1zaXplOiAwLjg3NXJlbSxcbiAgZm9ybS1jb250cm9sLWZlZWRiYWNrLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ub3JtYWwsXG5cbiAgY2hlY2tib3gtYmc6IHRyYW5zcGFyZW50LFxuICBjaGVja2JveC1zaXplOiAxLjI1cmVtLFxuICBjaGVja2JveC1ib3JkZXItc2l6ZTogMnB4LFxuICBjaGVja2JveC1ib3JkZXItY29sb3I6IGZvcm0tY29udHJvbC1ib3JkZXItY29sb3IsXG4gIGNoZWNrYm94LWNoZWNrbWFyazogdHJhbnNwYXJlbnQsXG5cbiAgY2hlY2tib3gtY2hlY2tlZC1iZzogdHJhbnNwYXJlbnQsXG4gIGNoZWNrYm94LWNoZWNrZWQtc2l6ZTogMS4yNXJlbSxcbiAgY2hlY2tib3gtY2hlY2tlZC1ib3JkZXItc2l6ZTogMnB4LFxuICBjaGVja2JveC1jaGVja2VkLWJvcmRlci1jb2xvcjogY29sb3Itc3VjY2VzcyxcbiAgY2hlY2tib3gtY2hlY2tlZC1jaGVja21hcms6IGNvbG9yLWZnLWhlYWRpbmcsXG5cbiAgY2hlY2tib3gtZGlzYWJsZWQtYmc6IHRyYW5zcGFyZW50LFxuICBjaGVja2JveC1kaXNhYmxlZC1zaXplOiAxLjI1cmVtLFxuICBjaGVja2JveC1kaXNhYmxlZC1ib3JkZXItc2l6ZTogMnB4LFxuICBjaGVja2JveC1kaXNhYmxlZC1ib3JkZXItY29sb3I6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIGNoZWNrYm94LWRpc2FibGVkLWNoZWNrbWFyazogY29sb3ItZmctaGVhZGluZyxcblxuICBtb2RhbC1mb250LXNpemU6IGZvbnQtc2l6ZSxcbiAgbW9kYWwtbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0LFxuICBtb2RhbC1mb250LXdlaWdodDogZm9udC13ZWlnaHQtbm9ybWFsLFxuICBtb2RhbC1mZzogY29sb3ItZmctdGV4dCxcbiAgbW9kYWwtZmctaGVhZGluZzogY29sb3ItZmctaGVhZGluZyxcbiAgbW9kYWwtYmc6IGNvbG9yLWJnLFxuICBtb2RhbC1ib3JkZXI6IHRyYW5zcGFyZW50LFxuICBtb2RhbC1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG4gIG1vZGFsLXBhZGRpbmc6IHBhZGRpbmcsXG4gIG1vZGFsLWhlYWRlci1mb250LWZhbWlseTogZm9udC1zZWNvbmRhcnksXG4gIG1vZGFsLWhlYWRlci1mb250LXdlaWdodDogZm9udC13ZWlnaHQtYm9sZGVyLFxuICBtb2RhbC1oZWFkZXItZm9udC1zaXplOiBmb250LXNpemUtbGcsXG4gIG1vZGFsLWJvZHktZm9udC1mYW1pbHk6IGZvbnQtbWFpbixcbiAgbW9kYWwtYm9keS1mb250LXdlaWdodDogZm9udC13ZWlnaHQtbm9ybWFsLFxuICBtb2RhbC1ib2R5LWZvbnQtc2l6ZTogZm9udC1zaXplLFxuICBtb2RhbC1zZXBhcmF0b3I6IHNlcGFyYXRvcixcblxuICBiYWRnZS1mZy10ZXh0OiBjb2xvci13aGl0ZSxcbiAgYmFkZ2UtcHJpbWFyeS1iZy1jb2xvcjogY29sb3ItcHJpbWFyeSxcbiAgYmFkZ2Utc3VjY2Vzcy1iZy1jb2xvcjogY29sb3Itc3VjY2VzcyxcbiAgYmFkZ2UtaW5mby1iZy1jb2xvcjogY29sb3ItaW5mbyxcbiAgYmFkZ2Utd2FybmluZy1iZy1jb2xvcjogY29sb3Itd2FybmluZyxcbiAgYmFkZ2UtZGFuZ2VyLWJnLWNvbG9yOiBjb2xvci1kYW5nZXIsXG5cbiAgcHJvZ3Jlc3MtYmFyLWhlaWdodC14bGc6IDEuNzVyZW0sXG4gIHByb2dyZXNzLWJhci1oZWlnaHQtbGc6IDEuNXJlbSxcbiAgcHJvZ3Jlc3MtYmFyLWhlaWdodDogMS4zNzVyZW0sXG4gIHByb2dyZXNzLWJhci1oZWlnaHQtc206IDEuMjVyZW0sXG4gIHByb2dyZXNzLWJhci1oZWlnaHQteHM6IDFyZW0sXG4gIHByb2dyZXNzLWJhci1hbmltYXRpb24tZHVyYXRpb246IDQwMG1zLFxuICBwcm9ncmVzcy1iYXItZm9udC1zaXplLXhsZzogZm9udC1zaXplLXhsZyxcbiAgcHJvZ3Jlc3MtYmFyLWZvbnQtc2l6ZS1sZzogZm9udC1zaXplLWxnLFxuICBwcm9ncmVzcy1iYXItZm9udC1zaXplOiBmb250LXNpemUsXG4gIHByb2dyZXNzLWJhci1mb250LXNpemUtc206IGZvbnQtc2l6ZS1zbSxcbiAgcHJvZ3Jlc3MtYmFyLWZvbnQtc2l6ZS14czogZm9udC1zaXplLXhzLFxuICBwcm9ncmVzcy1iYXItcmFkaXVzOiByYWRpdXMsXG4gIHByb2dyZXNzLWJhci1iZzogbGF5b3V0LWJnLFxuICBwcm9ncmVzcy1iYXItZm9udC1jb2xvcjogY29sb3Itd2hpdGUsXG4gIHByb2dyZXNzLWJhci1mb250LXdlaWdodDogZm9udC13ZWlnaHQtYm9sZCxcbiAgcHJvZ3Jlc3MtYmFyLWRlZmF1bHQtYmc6IGNvbG9yLWluZm8sXG4gIHByb2dyZXNzLWJhci1wcmltYXJ5LWJnOiBjb2xvci1wcmltYXJ5LFxuICBwcm9ncmVzcy1iYXItc3VjY2Vzcy1iZzogY29sb3Itc3VjY2VzcyxcbiAgcHJvZ3Jlc3MtYmFyLWluZm8tYmc6IGNvbG9yLWluZm8sXG4gIHByb2dyZXNzLWJhci13YXJuaW5nLWJnOiBjb2xvci13YXJuaW5nLFxuICBwcm9ncmVzcy1iYXItZGFuZ2VyLWJnOiBjb2xvci1kYW5nZXIsXG5cbiAgYWxlcnQtZm9udC1zaXplOiBmb250LXNpemUsXG4gIGFsZXJ0LWxpbmUtaGVpZ2h0OiBsaW5lLWhlaWdodCxcbiAgYWxlcnQtZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LW5vcm1hbCxcbiAgYWxlcnQtZmc6IGNvbG9yLXdoaXRlLFxuICBhbGVydC1vdXRsaW5lLWZnOiBjb2xvci1mZyxcbiAgYWxlcnQtYmc6IGNvbG9yLWJnLFxuICBhbGVydC1hY3RpdmUtYmc6IGNvbG9yLWZnLFxuICBhbGVydC1kaXNhYmxlZC1iZzogY29sb3ItZGlzYWJsZWQsXG4gIGFsZXJ0LWRpc2FibGVkLWZnOiBjb2xvci1mZyxcbiAgYWxlcnQtcHJpbWFyeS1iZzogY29sb3ItcHJpbWFyeSxcbiAgYWxlcnQtaW5mby1iZzogY29sb3ItaW5mbyxcbiAgYWxlcnQtc3VjY2Vzcy1iZzogY29sb3Itc3VjY2VzcyxcbiAgYWxlcnQtd2FybmluZy1iZzogY29sb3Itd2FybmluZyxcbiAgYWxlcnQtZGFuZ2VyLWJnOiBjb2xvci1kYW5nZXIsXG4gIGFsZXJ0LWhlaWdodC14eHNtYWxsOiA1MnB4LFxuICBhbGVydC1oZWlnaHQteHNtYWxsOiA3MnB4LFxuICBhbGVydC1oZWlnaHQtc21hbGw6IDkycHgsXG4gIGFsZXJ0LWhlaWdodC1tZWRpdW06IDExMnB4LFxuICBhbGVydC1oZWlnaHQtbGFyZ2U6IDEzMnB4LFxuICBhbGVydC1oZWlnaHQteGxhcmdlOiAxNTJweCxcbiAgYWxlcnQtaGVpZ2h0LXh4bGFyZ2U6IDE3MnB4LFxuICBhbGVydC1zaGFkb3c6IG5vbmUsXG4gIGFsZXJ0LWJvcmRlci1yYWRpdXM6IHJhZGl1cyxcbiAgYWxlcnQtcGFkZGluZzogMXJlbSAxLjEyNXJlbSxcbiAgYWxlcnQtY2xvc2FibGUtcGFkZGluZzogM3JlbSxcbiAgYWxlcnQtYnV0dG9uLXBhZGRpbmc6IDNyZW0sXG4gIGFsZXJ0LW1hcmdpbjogbWFyZ2luLFxuXG4gIGNoYXQtZm9udC1zaXplOiBmb250LXNpemUsXG4gIGNoYXQtZmc6IGNvbG9yLXdoaXRlLFxuICBjaGF0LWJnOiBjb2xvci1iZyxcbiAgY2hhdC1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG4gIGNoYXQtZmctdGV4dDogY29sb3ItZmctdGV4dCxcbiAgY2hhdC1oZWlnaHQteHhzbWFsbDogOTZweCxcbiAgY2hhdC1oZWlnaHQteHNtYWxsOiAyMTZweCxcbiAgY2hhdC1oZWlnaHQtc21hbGw6IDMzNnB4LFxuICBjaGF0LWhlaWdodC1tZWRpdW06IDQ1NnB4LFxuICBjaGF0LWhlaWdodC1sYXJnZTogNTc2cHgsXG4gIGNoYXQtaGVpZ2h0LXhsYXJnZTogNjk2cHgsXG4gIGNoYXQtaGVpZ2h0LXh4bGFyZ2U6IDgxNnB4LFxuICBjaGF0LWJvcmRlcjogYm9yZGVyLFxuICBjaGF0LXBhZGRpbmc6IHBhZGRpbmcsXG4gIGNoYXQtc2hhZG93OiBzaGFkb3csXG4gIGNoYXQtc2VwYXJhdG9yOiBzZXBhcmF0b3IsXG4gIGNoYXQtbWVzc2FnZS1mZzogY29sb3Itd2hpdGUsXG4gIGNoYXQtbWVzc2FnZS1iZzogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjNGNhNmZmLCAjNTliZmZmKSxcbiAgY2hhdC1tZXNzYWdlLXJlcGx5LWJnOiBjb2xvci1iZy1hY3RpdmUsXG4gIGNoYXQtbWVzc2FnZS1yZXBseS1mZzogY29sb3ItZmctdGV4dCxcbiAgY2hhdC1tZXNzYWdlLWF2YXRhci1iZzogY29sb3ItZmcsXG4gIGNoYXQtbWVzc2FnZS1zZW5kZXItZmc6IGNvbG9yLWZnLFxuICBjaGF0LW1lc3NhZ2UtcXVvdGUtZmc6IGNvbG9yLWZnLFxuICBjaGF0LW1lc3NhZ2UtcXVvdGUtYmc6IGNvbG9yLWJnLWFjdGl2ZSxcbiAgY2hhdC1tZXNzYWdlLWZpbGUtZmc6IGNvbG9yLWZnLFxuICBjaGF0LW1lc3NhZ2UtZmlsZS1iZzogdHJhbnNwYXJlbnQsXG4gIGNoYXQtZm9ybS1iZzogdHJhbnNwYXJlbnQsXG4gIGNoYXQtZm9ybS1mZzogY29sb3ItZmctaGVhZGluZyxcbiAgY2hhdC1mb3JtLWJvcmRlcjogc2VwYXJhdG9yLFxuICBjaGF0LWZvcm0tcGxhY2Vob2xkZXItZmc6IGNvbG9yLWZnLFxuICBjaGF0LWZvcm0tYWN0aXZlLWJvcmRlcjogY29sb3ItZmcsXG4gIGNoYXQtYWN0aXZlLWJnOiBjb2xvci1mZyxcbiAgY2hhdC1kaXNhYmxlZC1iZzogY29sb3ItZGlzYWJsZWQsXG4gIGNoYXQtZGlzYWJsZWQtZmc6IGNvbG9yLWZnLFxuICBjaGF0LXByaW1hcnktYmc6IGNvbG9yLXByaW1hcnksXG4gIGNoYXQtaW5mby1iZzogY29sb3ItaW5mbyxcbiAgY2hhdC1zdWNjZXNzLWJnOiBjb2xvci1zdWNjZXNzLFxuICBjaGF0LXdhcm5pbmctYmc6IGNvbG9yLXdhcm5pbmcsXG4gIGNoYXQtZGFuZ2VyLWJnOiBjb2xvci1kYW5nZXIsXG5cbiAgc3Bpbm5lci1iZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgzKSxcbiAgc3Bpbm5lci1jaXJjbGUtYmc6IGNvbG9yLWJnLWFjdGl2ZSxcbiAgc3Bpbm5lci1mZzogY29sb3ItZmctdGV4dCxcbiAgc3Bpbm5lci1hY3RpdmUtYmc6IGNvbG9yLWZnLFxuICBzcGlubmVyLWRpc2FibGVkLWJnOiBjb2xvci1kaXNhYmxlZCxcbiAgc3Bpbm5lci1kaXNhYmxlZC1mZzogY29sb3ItZmcsXG4gIHNwaW5uZXItcHJpbWFyeS1iZzogY29sb3ItcHJpbWFyeSxcbiAgc3Bpbm5lci1pbmZvLWJnOiBjb2xvci1pbmZvLFxuICBzcGlubmVyLXN1Y2Nlc3MtYmc6IGNvbG9yLXN1Y2Nlc3MsXG4gIHNwaW5uZXItd2FybmluZy1iZzogY29sb3Itd2FybmluZyxcbiAgc3Bpbm5lci1kYW5nZXItYmc6IGNvbG9yLWRhbmdlcixcbiAgc3Bpbm5lci14eHNtYWxsOiAxLjI1cmVtLFxuICBzcGlubmVyLXhzbWFsbDogMS41cmVtLFxuICBzcGlubmVyLXNtYWxsOiAxLjc1cmVtLFxuICBzcGlubmVyLW1lZGl1bTogMnJlbSxcbiAgc3Bpbm5lci1sYXJnZTogMi4yNXJlbSxcbiAgc3Bpbm5lci14bGFyZ2U6IDIuNXJlbSxcbiAgc3Bpbm5lci14eGxhcmdlOiAzcmVtLFxuXG4gIHN0ZXBwZXItaW5kZXgtc2l6ZTogMnJlbSxcbiAgc3RlcHBlci1sYWJlbC1mb250LXNpemU6IGZvbnQtc2l6ZS1zbSxcbiAgc3RlcHBlci1sYWJlbC1mb250LXdlaWdodDogZm9udC13ZWlnaHQtYm9sZGVyLFxuICBzdGVwcGVyLWFjY2VudC1jb2xvcjogY29sb3ItcHJpbWFyeSxcbiAgc3RlcHBlci1jb21wbGV0ZWQtZmc6IGNvbG9yLXdoaXRlLFxuICBzdGVwcGVyLWZnOiBjb2xvci1mZyxcbiAgc3RlcHBlci1jb21wbGV0ZWQtaWNvbi1zaXplOiAxLjVyZW0sXG4gIHN0ZXBwZXItY29tcGxldGVkLWljb24td2VpZ2h0OiBmb250LXdlaWdodC11bHRyYS1ib2xkLFxuICBzdGVwcGVyLXN0ZXAtcGFkZGluZzogcGFkZGluZyxcblxuICBhY2NvcmRpb24tcGFkZGluZzogcGFkZGluZyxcbiAgYWNjb3JkaW9uLXNlcGFyYXRvcjogc2VwYXJhdG9yLFxuICBhY2NvcmRpb24taGVhZGVyLWZvbnQtZmFtaWx5OiBmb250LXNlY29uZGFyeSxcbiAgYWNjb3JkaW9uLWhlYWRlci1mb250LXNpemU6IGZvbnQtc2l6ZS1sZyxcbiAgYWNjb3JkaW9uLWhlYWRlci1mb250LXdlaWdodDogZm9udC13ZWlnaHQtbm9ybWFsLFxuICBhY2NvcmRpb24taGVhZGVyLWZnLWhlYWRpbmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIGFjY29yZGlvbi1oZWFkZXItZGlzYWJsZWQtZmc6IGNvbG9yLWZnLFxuICBhY2NvcmRpb24taGVhZGVyLWJvcmRlci13aWR0aDogMXB4LFxuICBhY2NvcmRpb24taGVhZGVyLWJvcmRlci10eXBlOiBzb2xpZCxcbiAgYWNjb3JkaW9uLWhlYWRlci1ib3JkZXItY29sb3I6IGFjY29yZGlvbi1zZXBhcmF0b3IsXG4gIGFjY29yZGlvbi1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG4gIGFjY29yZGlvbi1pdGVtLWJnOiBjb2xvci1iZyxcbiAgYWNjb3JkaW9uLWl0ZW0tZm9udC1zaXplOiBmb250LXNpemUsXG4gIGFjY29yZGlvbi1pdGVtLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ub3JtYWwsXG4gIGFjY29yZGlvbi1pdGVtLWZvbnQtZmFtaWx5OiBmb250LW1haW4sXG4gIGFjY29yZGlvbi1pdGVtLWZnLXRleHQ6IGNvbG9yLWZnLXRleHQsXG4gIGFjY29yZGlvbi1pdGVtLXNoYWRvdzogc2hhZG93LFxuXG4gIGxpc3QtaXRlbS1ib3JkZXItY29sb3I6IHRhYnMtc2VwYXJhdG9yLFxuICBsaXN0LWl0ZW0tcGFkZGluZzogMXJlbSxcblxuICBjYWxlbmRhci13aWR0aDogMjEuODc1cmVtLFxuICBjYWxlbmRhci1ib2R5LWhlaWdodDogMjUuNjI1cmVtLFxuICBjYWxlbmRhci1oZWFkZXItdGl0bGUtZm9udC1zaXplOiBmb250LXNpemUteGxnLFxuICBjYWxlbmRhci1oZWFkZXItdGl0bGUtZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LWJvbGQsXG4gIGNhbGVuZGFyLWhlYWRlci1zdWItdGl0bGUtZm9udC1zaXplOiBmb250LXNpemUsXG4gIGNhbGVuZGFyLWhlYWRlci1zdWItdGl0bGUtZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LXRoaW4sXG4gIGNhbGVuZGFyLW5hdmlnYXRpb24tYnV0dG9uLXdpZHRoOiAxMHJlbSxcbiAgY2FsZW5kYXItc2VsZWN0ZWQtaXRlbS1iZzogY29sb3Itc3VjY2VzcyxcbiAgY2FsZW5kYXItaG92ZXItaXRlbS1iZzogY2FsZW5kYXItc2VsZWN0ZWQtaXRlbS1iZyxcbiAgY2FsZW5kYXItdG9kYXktaXRlbS1iZzogY29sb3ItYmctYWN0aXZlLFxuICBjYWxlbmRhci1hY3RpdmUtaXRlbS1iZzogY29sb3Itc3VjY2VzcyxcbiAgY2FsZW5kYXItZmc6IGNvbG9yLWZnLXRleHQsXG4gIGNhbGVuZGFyLXNlbGVjdGVkLWZnOiBjb2xvci13aGl0ZSxcbiAgY2FsZW5kYXItdG9kYXktZmc6IGNhbGVuZGFyLWZnLFxuICBjYWxlbmRhci1kYXktY2VsbC13aWR0aDogMi42MjVyZW0sXG4gIGNhbGVuZGFyLWRheS1jZWxsLWhlaWdodDogMi42MjVyZW0sXG4gIGNhbGVuZGFyLW1vbnRoLWNlbGwtd2lkdGg6IDQuMjVyZW0sXG4gIGNhbGVuZGFyLW1vbnRoLWNlbGwtaGVpZ2h0OiAyLjM3NXJlbSxcbiAgY2FsZW5kYXIteWVhci1jZWxsLXdpZHRoOiBjYWxlbmRhci1tb250aC1jZWxsLXdpZHRoLFxuICBjYWxlbmRhci15ZWFyLWNlbGwtaGVpZ2h0OiBjYWxlbmRhci1tb250aC1jZWxsLWhlaWdodCxcbiAgY2FsZW5kYXItaW5hY3RpdmUtb3BhY2l0eTogMC41LFxuICBjYWxlbmRhci1kaXNhYmxlZC1vcGFjaXR5OiAwLjMsXG4gIGNhbGVuZGFyLWJvcmRlci1yYWRpdXM6IHJhZGl1cyxcbiAgY2FsZW5kYXItd2Vla2RheS13aWR0aDogY2FsZW5kYXItZGF5LWNlbGwtd2lkdGgsXG4gIGNhbGVuZGFyLXdlZWtkYXktaGVpZ2h0OiAxLjc1cmVtLFxuICBjYWxlbmRhci13ZWVrZGF5LWZvbnQtc2l6ZTogZm9udC1zaXplLXhzLFxuICBjYWxlbmRhci13ZWVrZGF5LWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ub3JtYWwsXG4gIGNhbGVuZGFyLXdlZWtkYXktZmc6IGNvbG9yLWZnLFxuICBjYWxlbmRhci13ZWVrZGF5LWhvbGlkYXktZmc6IGNvbG9yLWRhbmdlcixcbiAgY2FsZW5kYXItcmFuZ2UtYmctaW4tcmFuZ2U6ICNlYmZiZjIsXG5cbiAgY2FsZW5kYXItbGFyZ2Utd2lkdGg6IDI0LjM3NXJlbSxcbiAgY2FsZW5kYXItbGFyZ2UtYm9keS1oZWlnaHQ6IDI3Ljc1cmVtLFxuICBjYWxlbmRhci1kYXktY2VsbC1sYXJnZS13aWR0aDogM3JlbSxcbiAgY2FsZW5kYXItZGF5LWNlbGwtbGFyZ2UtaGVpZ2h0OiAzcmVtLFxuICBjYWxlbmRhci1tb250aC1jZWxsLWxhcmdlLXdpZHRoOiA0LjI1cmVtLFxuICBjYWxlbmRhci1tb250aC1jZWxsLWxhcmdlLWhlaWdodDogMi4zNzVyZW0sXG4gIGNhbGVuZGFyLXllYXItY2VsbC1sYXJnZS13aWR0aDogY2FsZW5kYXItbW9udGgtY2VsbC13aWR0aCxcbiAgY2FsZW5kYXIteWVhci1jZWxsLWxhcmdlLWhlaWdodDogY2FsZW5kYXItbW9udGgtY2VsbC1oZWlnaHQsXG5cbiAgb3ZlcmxheS1iYWNrZHJvcC1iZzogcmdiYSgwLCAwLCAwLCAwLjI4OCksXG5cbiAgdG9vbHRpcC1iZzogY29sb3ItZmctdGV4dCxcbiAgdG9vbHRpcC1wcmltYXJ5LWJnOiBjb2xvci1wcmltYXJ5LFxuICB0b29sdGlwLWluZm8tYmc6IGNvbG9yLWluZm8sXG4gIHRvb2x0aXAtc3VjY2Vzcy1iZzogY29sb3Itc3VjY2VzcyxcbiAgdG9vbHRpcC13YXJuaW5nLWJnOiBjb2xvci13YXJuaW5nLFxuICB0b29sdGlwLWRhbmdlci1iZzogY29sb3ItZGFuZ2VyLFxuICB0b29sdGlwLWZnOiBjb2xvci1iZy1hY3RpdmUsXG4gIHRvb2x0aXAtc3RhdHVzLWZnOiBjb2xvci1iZy1hY3RpdmUsXG4gIHRvb2x0aXAtc2hhZG93OiBzaGFkb3csXG4gIHRvb2x0aXAtZm9udC1zaXplOiBmb250LXNpemUsXG5cbiAgc2VsZWN0LWJvcmRlci13aWR0aDogMnB4LFxuICBzZWxlY3QtbWF4LWhlaWdodDogMjByZW0sXG4gIHNlbGVjdC1iZzogY29sb3ItYmcsXG5cbiAgc2VsZWN0LWNoZWNrYm94LWNvbG9yOiBjaGVja2JveC1ib3JkZXItY29sb3IsXG4gIHNlbGVjdC1jaGVja21hcmstY29sb3I6IGNoZWNrYm94LWJvcmRlci1jb2xvcixcblxuICBzZWxlY3Qtb3B0aW9uLWRpc2FibGVkLWJnOiAjZjJmNGY3LFxuICBzZWxlY3Qtb3B0aW9uLWRpc2FibGVkLW9wYWNpdHk6IDAuMyxcbiAgc2VsZWN0LW9wdGlvbi1wYWRkaW5nOiAwLjc1cmVtIDEuNXJlbSxcblxuICBkYXRlcGlja2VyLWZnOiBjb2xvci1mZy1oZWFkaW5nLFxuICBkYXRlcGlja2VyLWJnOiBjb2xvci1iZyxcbiAgZGF0ZXBpY2tlci1ib3JkZXI6IGNvbG9yLXN1Y2Nlc3MsXG4gIGRhdGVwaWNrZXItYm9yZGVyLXJhZGl1czogcmFkaXVzLFxuICBkYXRlcGlja2VyLXNoYWRvdzogbm9uZSxcbiAgZGF0ZXBpY2tlci1hcnJvdy1zaXplOiAxMXB4LFxuXG4gIHJhZGlvLWJnOiB0cmFuc3BhcmVudCxcbiAgcmFkaW8tZmc6IGNvbG9yLWZnLXRleHQsXG4gIHJhZGlvLXNpemU6IDEuMjVyZW0sXG4gIHJhZGlvLWJvcmRlci1zaXplOiAycHgsXG4gIHJhZGlvLWJvcmRlci1jb2xvcjogZm9ybS1jb250cm9sLWJvcmRlci1jb2xvcixcbiAgcmFkaW8tY2hlY2ttYXJrOiB0cmFuc3BhcmVudCxcbiAgcmFkaW8tY2hlY2tlZC1iZzogdHJhbnNwYXJlbnQsXG4gIHJhZGlvLWNoZWNrZWQtc2l6ZTogMS4yNXJlbSxcbiAgcmFkaW8tY2hlY2tlZC1ib3JkZXItc2l6ZTogMnB4LFxuICByYWRpby1jaGVja2VkLWJvcmRlci1jb2xvcjogY29sb3Itc3VjY2VzcyxcbiAgcmFkaW8tY2hlY2tlZC1jaGVja21hcms6IGNvbG9yLXN1Y2Nlc3MsXG4gIHJhZGlvLWRpc2FibGVkLWJnOiB0cmFuc3BhcmVudCxcbiAgcmFkaW8tZGlzYWJsZWQtc2l6ZTogMS4yNXJlbSxcbiAgcmFkaW8tZGlzYWJsZWQtYm9yZGVyLXNpemU6IDJweCxcbiAgcmFkaW8tZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiByYWRpby1ib3JkZXItY29sb3IsXG4gIHJhZGlvLWRpc2FibGVkLWNoZWNrbWFyazogcmFkaW8tY2hlY2ttYXJrLFxuKTtcblxuLy8gcmVnaXN0ZXIgdGhlIHRoZW1lXG4kbmItdGhlbWVzOiBuYi1yZWdpc3Rlci10aGVtZSgkdGhlbWUsIGRlZmF1bHQpO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuXG5AaW1wb3J0ICcuLi9jb3JlL2Z1bmN0aW9ucyc7XG5AaW1wb3J0ICcuLi9jb3JlL21peGlucyc7XG5AaW1wb3J0ICdkZWZhdWx0JztcblxuLy8gZGVmYXVsdCB0aGUgYmFzZSB0aGVtZVxuJHRoZW1lOiAoXG4gIHJhZGl1czogMC41cmVtLFxuXG4gIGNvbG9yLWJnOiAjM2QzNzgwLFxuICBjb2xvci1iZy1hY3RpdmU6ICM0OTQyOTksXG4gIGNvbG9yLWZnOiAjYTFhMWU1LFxuICBjb2xvci1mZy1oZWFkaW5nOiAjZmZmZmZmLFxuICBjb2xvci1mZy10ZXh0OiAjZDFkMWZmLFxuICBjb2xvci1mZy1oaWdobGlnaHQ6ICMwMGY5YTYsXG5cbiAgY29sb3ItZ3JheTogcmdiYSg4MSwgMTEzLCAxNjUsIDAuMTUpLFxuICBjb2xvci1uZXV0cmFsOiB0cmFuc3BhcmVudCxcbiAgY29sb3Itd2hpdGU6ICNmZmZmZmYsXG4gIGNvbG9yLWRpc2FibGVkOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCksXG5cbiAgY29sb3ItcHJpbWFyeTogIzc2NTlmZixcbiAgY29sb3Itc3VjY2VzczogIzAwZDk3NyxcbiAgY29sb3ItaW5mbzogIzAwODhmZixcbiAgY29sb3Itd2FybmluZzogI2ZmYTEwMCxcbiAgY29sb3ItZGFuZ2VyOiAjZmYzODZhLFxuXG4gIGxpbmstY29sb3I6ICMwMGY5YTYsXG4gIGxpbmstY29sb3ItaG92ZXI6ICMxNGZmYmUsXG5cbiAgc2VwYXJhdG9yOiAjMzQyZTczLFxuICBzaGFkb3c6IDAgOHB4IDIwcHggMCByZ2JhKDQwLCAzNywgODksIDAuNiksXG5cbiAgY2FyZC1oZWFkZXItZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LWJvbGRlcixcblxuICBsYXlvdXQtYmc6ICMyZjI5NmIsXG5cbiAgc2Nyb2xsYmFyLWZnOiAjNTU0ZGIzLFxuICBzY3JvbGxiYXItYmc6ICMzMzJlNzMsXG5cbiAgcmFkaWFsLWdyYWRpZW50OiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSA1MCUsICM0MjNmOGMsICMzMDJjNmUpLFxuICBsaW5lYXItZ3JhZGllbnQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzE3MTc0OSwgIzQxMzc4OSksXG5cbiAgc2lkZWJhci1mZzogY29sb3Itc2Vjb25kYXJ5LFxuICBzaWRlYmFyLWJnOiBjb2xvci1iZyxcblxuICBoZWFkZXItZmc6IGNvbG9yLXdoaXRlLFxuICBoZWFkZXItYmc6IGNvbG9yLWJnLFxuXG4gIGZvb3Rlci1mZzogY29sb3ItZmcsXG4gIGZvb3Rlci1iZzogY29sb3ItYmcsXG5cbiAgYWN0aW9ucy1mZzogY29sb3ItZmcsXG4gIGFjdGlvbnMtYmc6IGNvbG9yLWJnLFxuXG4gIHVzZXItZmc6IGNvbG9yLWJnLFxuICB1c2VyLWJnOiBjb2xvci1mZyxcbiAgdXNlci1mZy1oaWdobGlnaHQ6IGNvbG9yLWZnLWhpZ2hsaWdodCxcblxuICBwb3BvdmVyLWJvcmRlcjogY29sb3ItcHJpbWFyeSxcbiAgcG9wb3Zlci1zaGFkb3c6IHNoYWRvdyxcblxuICBjb250ZXh0LW1lbnUtYWN0aXZlLWJnOiBjb2xvci1wcmltYXJ5LFxuICBjb250ZXh0LW1lbnUtYm9yZGVyOiBjb2xvci1wcmltYXJ5LFxuXG4gIGZvb3Rlci1oZWlnaHQ6IGhlYWRlci1oZWlnaHQsXG5cbiAgc2lkZWJhci13aWR0aDogMTYuMjVyZW0sXG4gIHNpZGViYXItd2lkdGgtY29tcGFjdDogMy40NXJlbSxcblxuICBtZW51LWZnOiBjb2xvci1mZyxcbiAgbWVudS1iZzogY29sb3ItYmcsXG4gIG1lbnUtYWN0aXZlLWZnOiBjb2xvci13aGl0ZSxcbiAgbWVudS1ncm91cC1mZzogY29sb3Itd2hpdGUsXG4gIG1lbnUtZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LW5vcm1hbCxcbiAgbWVudS1hY3RpdmUtZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LWJvbGRlcixcbiAgbWVudS1zdWJtZW51LWJnOiBsYXlvdXQtYmcsXG4gIG1lbnUtc3VibWVudS1mZzogY29sb3ItZmcsXG4gIG1lbnUtc3VibWVudS1hY3RpdmUtZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIG1lbnUtc3VibWVudS1hY3RpdmUtYmc6IHJnYmEoMCwgMjU1LCAxNzAsIDAuMjUpLFxuICBtZW51LXN1Ym1lbnUtYWN0aXZlLWJvcmRlci1jb2xvcjogY29sb3ItZmctaGlnaGxpZ2h0LFxuICBtZW51LXN1Ym1lbnUtYWN0aXZlLXNoYWRvdzogMCAycHggMTJweCAwIHJnYmEoMCwgMjU1LCAxNzAsIDAuMjUpLFxuICBtZW51LWl0ZW0tcGFkZGluZzogMC4yNXJlbSAwLjc1cmVtLFxuICBtZW51LWl0ZW0tc2VwYXJhdG9yOiB0cmFuc3BhcmVudCxcblxuICBidG4taGVyby1zaGFkb3c6IDAgNHB4IDEwcHggMCByZ2JhKDMzLCA3LCA3NywgMC41KSxcbiAgYnRuLWhlcm8tdGV4dC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMyksXG4gIGJ0bi1oZXJvLWJldmVsLXNpemU6IDAgM3B4IDAgMCxcbiAgYnRuLWhlcm8tZ2xvdy1zaXplOiAwIDJweCA4cHggMCxcbiAgYnRuLWhlcm8tcHJpbWFyeS1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLWhlcm8tc3VjY2Vzcy1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLWhlcm8td2FybmluZy1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLWhlcm8taW5mby1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLWhlcm8tZGFuZ2VyLWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby1zZWNvbmRhcnktZ2xvdy1zaXplOiBidG4taGVyby1nbG93LXNpemUsXG4gIGJ0bi1zZWNvbmRhcnktYm9yZGVyOiBjb2xvci1wcmltYXJ5LFxuICBidG4tb3V0bGluZS1mZzogY29sb3ItZmctaGVhZGluZyxcbiAgYnRuLW91dGxpbmUtaG92ZXItZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIGJ0bi1vdXRsaW5lLWZvY3VzLWZnOiBjb2xvci1mZy1oZWFkaW5nLFxuICBidG4tZ3JvdXAtYmc6ICMzNzMyNzMsXG4gIGJ0bi1ncm91cC1zZXBhcmF0b3I6ICMzMTJjNjYsXG5cbiAgZm9ybS1jb250cm9sLWJnOiAjMzczMTdhLFxuICBmb3JtLWNvbnRyb2wtZm9jdXMtYmc6IHNlcGFyYXRvcixcbiAgZm9ybS1jb250cm9sLWJvcmRlci1jb2xvcjogc2VwYXJhdG9yLFxuICBmb3JtLWNvbnRyb2wtc2VsZWN0ZWQtYm9yZGVyLWNvbG9yOiBjb2xvci1wcmltYXJ5LFxuXG4gIGNoZWNrYm94LWJnOiB0cmFuc3BhcmVudCxcbiAgY2hlY2tib3gtc2l6ZTogMS4yNXJlbSxcbiAgY2hlY2tib3gtYm9yZGVyLXNpemU6IDJweCxcbiAgY2hlY2tib3gtYm9yZGVyLWNvbG9yOiBjb2xvci1mZyxcbiAgY2hlY2tib3gtY2hlY2ttYXJrOiB0cmFuc3BhcmVudCxcblxuICBjaGVja2JveC1jaGVja2VkLWJnOiB0cmFuc3BhcmVudCxcbiAgY2hlY2tib3gtY2hlY2tlZC1zaXplOiAxLjI1cmVtLFxuICBjaGVja2JveC1jaGVja2VkLWJvcmRlci1zaXplOiAycHgsXG4gIGNoZWNrYm94LWNoZWNrZWQtYm9yZGVyLWNvbG9yOiBjb2xvci1zdWNjZXNzLFxuICBjaGVja2JveC1jaGVja2VkLWNoZWNrbWFyazogY29sb3ItZmctaGVhZGluZyxcblxuICBjaGVja2JveC1kaXNhYmxlZC1iZzogdHJhbnNwYXJlbnQsXG4gIGNoZWNrYm94LWRpc2FibGVkLXNpemU6IDEuMjVyZW0sXG4gIGNoZWNrYm94LWRpc2FibGVkLWJvcmRlci1zaXplOiAycHgsXG4gIGNoZWNrYm94LWRpc2FibGVkLWJvcmRlci1jb2xvcjogY29sb3ItZmctaGVhZGluZyxcbiAgY2hlY2tib3gtZGlzYWJsZWQtY2hlY2ttYXJrOiBjb2xvci1mZy1oZWFkaW5nLFxuXG4gIHNlYXJjaC1iZzogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMTcxNzQ5LCAjNDEzNzg5KSxcblxuICBzbWFydC10YWJsZS1oZWFkZXItZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LW5vcm1hbCxcbiAgc21hcnQtdGFibGUtaGVhZGVyLWJnOiBjb2xvci1iZy1hY3RpdmUsXG4gIHNtYXJ0LXRhYmxlLWJnLWV2ZW46ICMzYTM0N2EsXG4gIHNtYXJ0LXRhYmxlLWJnLWFjdGl2ZTogY29sb3ItYmctYWN0aXZlLFxuXG4gIHNtYXJ0LXRhYmxlLXBhZ2luZy1ib3JkZXItY29sb3I6IGNvbG9yLXByaW1hcnksXG4gIHNtYXJ0LXRhYmxlLXBhZ2luZy1ib3JkZXItd2lkdGg6IDJweCxcbiAgc21hcnQtdGFibGUtcGFnaW5nLWZnLWFjdGl2ZTogY29sb3ItZmctaGVhZGluZyxcbiAgc21hcnQtdGFibGUtcGFnaW5nLWJnLWFjdGl2ZTogY29sb3ItcHJpbWFyeSxcbiAgc21hcnQtdGFibGUtcGFnaW5nLWhvdmVyOiByZ2JhKDAsIDAsIDAsIDAuMiksXG5cbiAgYmFkZ2UtZmctdGV4dDogY29sb3Itd2hpdGUsXG4gIGJhZGdlLXByaW1hcnktYmctY29sb3I6IGNvbG9yLXByaW1hcnksXG4gIGJhZGdlLXN1Y2Nlc3MtYmctY29sb3I6IGNvbG9yLXN1Y2Nlc3MsXG4gIGJhZGdlLWluZm8tYmctY29sb3I6IGNvbG9yLWluZm8sXG4gIGJhZGdlLXdhcm5pbmctYmctY29sb3I6IGNvbG9yLXdhcm5pbmcsXG4gIGJhZGdlLWRhbmdlci1iZy1jb2xvcjogY29sb3ItZGFuZ2VyLFxuXG4gIHNwaW5uZXItYmc6IHJnYmEoNjEsIDU1LCAxMjgsIDAuOSksXG4gIHN0ZXBwZXItYWNjZW50LWNvbG9yOiBjb2xvci1zdWNjZXNzLFxuXG4gIHRhYnMtc2VsZWN0ZWQtc2Vjb25kLWNvbG9yOiBjb2xvci1zdWNjZXNzLFxuICB0YWJzLXNlbGVjdGVkLWRlZ3JlZXM6IDIwZGVnLFxuXG4gIGNhbGVuZGFyLWFjdGl2ZS1pdGVtLWJnOiBjb2xvci1wcmltYXJ5LFxuICBjYWxlbmRhci1zZWxlY3RlZC1pdGVtLWJnOiBjb2xvci1wcmltYXJ5LFxuICBjYWxlbmRhci1yYW5nZS1iZy1pbi1yYW5nZTogIzRlNDA5NSxcbiAgY2FsZW5kYXItdG9kYXktaXRlbS1iZzogIzM1MmY2ZSxcblxuICBzZWxlY3Qtb3B0aW9uLWRpc2FibGVkLWJnOiAjMzEyZTc1LFxuXG4gIHRvYXN0ci1jb2xvci1mZzogY29sb3Itd2hpdGUsXG4gIHRvYXN0ci1wYWRkaW5nOiAxLjI1cmVtLFxuICB0b2FzdHItYm9yZGVyOiAwLFxuICB0b2FzdHItZGVmYXVsdC1iYWNrZ3JvdW5kOiAjYmNjM2NjLFxuXG4gIHRvb2x0aXAtZmc6IGNvbG9yLWJnLFxuICB0b29sdGlwLXN0YXR1cy1mZzogY29sb3Itd2hpdGUsXG5cbiAgZGF0ZXBpY2tlci1ib3JkZXI6IGNvbG9yLXByaW1hcnksXG4gIGRhdGVwaWNrZXItc2hhZG93OiBzaGFkb3csXG5cbiAgcmFkaW8tY2hlY2tlZC1ib3JkZXItY29sb3I6IGNvbG9yLXByaW1hcnksXG4gIHJhZGlvLWNoZWNrZWQtY2hlY2ttYXJrOiBjb2xvci1wcmltYXJ5LFxuKTtcblxuLy8gcmVnaXN0ZXIgdGhlIHRoZW1lXG4kbmItdGhlbWVzOiBuYi1yZWdpc3Rlci10aGVtZSgkdGhlbWUsIGNvc21pYywgZGVmYXVsdCk7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWt2ZW8uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICovXG5cbkBpbXBvcnQgJy4uL2NvcmUvZnVuY3Rpb25zJztcbkBpbXBvcnQgJy4uL2NvcmUvbWl4aW5zJztcbkBpbXBvcnQgJ2RlZmF1bHQnO1xuXG4vLyBkZWZhdWx0IHRoZSBiYXNlIHRoZW1lXG4kdGhlbWU6IChcbiAgaGVhZGVyLWZnOiAjZjdmYWZiLFxuICBoZWFkZXItYmc6ICMxMTEyMTgsXG5cbiAgbGF5b3V0LWJnOiAjZjFmNWY4LFxuXG4gIGNvbG9yLWZnLWhlYWRpbmc6ICMxODE4MTgsXG4gIGNvbG9yLWZnLXRleHQ6ICM0YjRiNGIsXG4gIGNvbG9yLWZnLWhpZ2hsaWdodDogY29sb3ItZmcsXG5cbiAgc2VwYXJhdG9yOiAjY2RkNWRjLFxuXG4gIHJhZGl1czogMC4xN3JlbSxcblxuICBzY3JvbGxiYXItYmc6ICNlM2U5ZWUsXG5cbiAgY29sb3ItcHJpbWFyeTogIzczYTFmZixcbiAgY29sb3Itc3VjY2VzczogIzVkY2ZlMyxcbiAgY29sb3ItaW5mbzogI2JhN2ZlYyxcbiAgY29sb3Itd2FybmluZzogI2ZmYTM2YixcbiAgY29sb3ItZGFuZ2VyOiAjZmY2YjgzLFxuXG4gIGJ0bi1zZWNvbmRhcnktYmc6ICNlZGYyZjUsXG4gIGJ0bi1zZWNvbmRhcnktYm9yZGVyOiAjZWRmMmY1LFxuXG4gIGFjdGlvbnMtZmc6ICNkM2RiZTUsXG4gIGFjdGlvbnMtYmc6IGNvbG9yLWJnLFxuXG4gIHNpZGViYXItYmc6ICNlM2U5ZWUsXG5cbiAgYm9yZGVyLWNvbG9yOiAjZDVkYmUwLFxuXG4gIG1lbnUtZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LWJvbGRlcixcbiAgbWVudS1mZzogY29sb3ItZmctdGV4dCxcbiAgbWVudS1iZzogI2UzZTllZSxcbiAgbWVudS1hY3RpdmUtZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIG1lbnUtYWN0aXZlLWJnOiBtZW51LWJnLFxuXG4gIG1lbnUtc3VibWVudS1iZzogbWVudS1iZyxcbiAgbWVudS1zdWJtZW51LWZnOiBjb2xvci1mZy10ZXh0LFxuICBtZW51LXN1Ym1lbnUtYWN0aXZlLWZnOiBjb2xvci1mZy1oZWFkaW5nLFxuICBtZW51LXN1Ym1lbnUtYWN0aXZlLWJnOiAjY2RkNWRjLFxuICBtZW51LXN1Ym1lbnUtYWN0aXZlLWJvcmRlci1jb2xvcjogbWVudS1zdWJtZW51LWFjdGl2ZS1iZyxcbiAgbWVudS1zdWJtZW51LWFjdGl2ZS1zaGFkb3c6IG5vbmUsXG4gIG1lbnUtc3VibWVudS1ob3Zlci1mZzogbWVudS1zdWJtZW51LWFjdGl2ZS1mZyxcbiAgbWVudS1zdWJtZW51LWhvdmVyLWJnOiBtZW51LWJnLFxuICBtZW51LXN1Ym1lbnUtaXRlbS1ib3JkZXItd2lkdGg6IDAuMTI1cmVtLFxuICBtZW51LXN1Ym1lbnUtaXRlbS1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG4gIG1lbnUtc3VibWVudS1pdGVtLXBhZGRpbmc6IDAuNXJlbSAxcmVtLFxuICBtZW51LXN1Ym1lbnUtaXRlbS1jb250YWluZXItcGFkZGluZzogMCAxLjI1cmVtLFxuICBtZW51LXN1Ym1lbnUtcGFkZGluZzogMC41cmVtLFxuXG4gIGJ0bi1ib3JkZXItcmFkaXVzOiBidG4tc2VtaS1yb3VuZC1ib3JkZXItcmFkaXVzLFxuXG4gIGJ0bi1oZXJvLWRlZ3JlZTogMGRlZyxcbiAgYnRuLWhlcm8tcHJpbWFyeS1kZWdyZWU6IGJ0bi1oZXJvLWRlZ3JlZSxcbiAgYnRuLWhlcm8tc3VjY2Vzcy1kZWdyZWU6IGJ0bi1oZXJvLWRlZ3JlZSxcbiAgYnRuLWhlcm8td2FybmluZy1kZWdyZWU6IGJ0bi1oZXJvLWRlZ3JlZSxcbiAgYnRuLWhlcm8taW5mby1kZWdyZWU6IGJ0bi1oZXJvLWRlZ3JlZSxcbiAgYnRuLWhlcm8tZGFuZ2VyLWRlZ3JlZTogYnRuLWhlcm8tZGVncmVlLFxuICBidG4taGVyby1zZWNvbmRhcnktZGVncmVlOiBidG4taGVyby1kZWdyZWUsXG4gIGJ0bi1oZXJvLWdsb3ctc2l6ZTogMCAwIDIwcHggMCxcbiAgYnRuLWhlcm8tcHJpbWFyeS1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLWhlcm8tc3VjY2Vzcy1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLWhlcm8td2FybmluZy1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLWhlcm8taW5mby1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLWhlcm8tZGFuZ2VyLWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby1zZWNvbmRhcnktZ2xvdy1zaXplOiAwIDAgMCAwLFxuICBidG4taGVyby1ib3JkZXItcmFkaXVzOiBidG4tYm9yZGVyLXJhZGl1cyxcblxuICBjYXJkLXNoYWRvdzogbm9uZSxcbiAgY2FyZC1ib3JkZXItd2lkdGg6IDFweCxcbiAgY2FyZC1ib3JkZXItY29sb3I6IGJvcmRlci1jb2xvcixcbiAgY2FyZC1oZWFkZXItYm9yZGVyLXdpZHRoOiAwLFxuXG4gIGxpbmstY29sb3I6ICM1ZGNmZTMsXG4gIGxpbmstY29sb3ItaG92ZXI6ICM3ZGNmZTMsXG4gIGxpbmstY29sb3ItdmlzaXRlZDogbGluay1jb2xvcixcblxuICBhY3Rpb25zLXNlcGFyYXRvcjogI2YxZjRmNSxcblxuICBtb2RhbC1zZXBhcmF0b3I6IGJvcmRlci1jb2xvcixcblxuICB0YWJzLXNlbGVjdGVkOiBjb2xvci1wcmltYXJ5LFxuICB0YWJzLXNlbGVjdGVkLXNlY29uZC1jb2xvcjogY29sb3ItcHJpbWFyeSxcbiAgdGFicy1zZXBhcmF0b3I6ICNlYmVjZWUsXG5cbiAgc21hcnQtdGFibGUtcGFnaW5nLWJnLWFjdGl2ZTogY29sb3ItcHJpbWFyeSxcblxuICByb3V0ZS10YWJzLXNlbGVjdGVkOiBjb2xvci1wcmltYXJ5LFxuXG4gIHBvcG92ZXItYm9yZGVyOiBjb2xvci1wcmltYXJ5LFxuXG4gIGZvb3Rlci1zaGFkb3c6IG5vbmUsXG4gIGZvb3Rlci1zZXBhcmF0b3I6IGJvcmRlci1jb2xvcixcbiAgZm9vdGVyLWZnLWhpZ2hsaWdodDogIzJhMmEyYSxcblxuICBjYWxlbmRhci10b2RheS1pdGVtLWJnOiAjYTJiMmM3LFxuICBjYWxlbmRhci1hY3RpdmUtaXRlbS1iZzogY29sb3ItcHJpbWFyeSxcbiAgY2FsZW5kYXItcmFuZ2UtYmctaW4tcmFuZ2U6ICNlM2VjZmUsXG4gIGNhbGVuZGFyLXRvZGF5LWZnOiBjb2xvci13aGl0ZSxcblxuICB0b2FzdHItaWNvbi1yYWRpdXM6IHJhZGl1cyxcblxuICBkYXRlcGlja2VyLWJvcmRlcjogY29sb3ItcHJpbWFyeSxcbik7XG5cbi8vIHJlZ2lzdGVyIHRoZSB0aGVtZVxuJG5iLXRoZW1lczogbmItcmVnaXN0ZXItdGhlbWUoJHRoZW1lLCBjb3Jwb3JhdGUsIGRlZmF1bHQpO1xuIiwiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuXG4kZ3JpZC1jb2x1bW5zOiAxMiAhZGVmYXVsdDtcbiRncmlkLWd1dHRlci13aWR0aC1iYXNlOiAyNHB4ICFkZWZhdWx0O1xuJGdyaWQtZ3V0dGVyLXdpZHRoczogKFxuICB4czogJGdyaWQtZ3V0dGVyLXdpZHRoLWJhc2UsXG4gIHNtOiAkZ3JpZC1ndXR0ZXItd2lkdGgtYmFzZSxcbiAgbWQ6ICRncmlkLWd1dHRlci13aWR0aC1iYXNlLFxuICBsZzogJGdyaWQtZ3V0dGVyLXdpZHRoLWJhc2UsXG4gIHhsOiAkZ3JpZC1ndXR0ZXItd2lkdGgtYmFzZVxuKSAhZGVmYXVsdDtcblxuXG4kZ3JpZC1icmVha3BvaW50czogKFxuICB4czogMCxcbiAgaXM6IDQwMHB4LFxuICBzbTogNTc2cHgsXG4gIG1kOiA3NjhweCxcbiAgbGc6IDk5MnB4LFxuICB4bDogMTIwMHB4LFxuICB4eGw6IDE0MDBweCxcbiAgeHh4bDogMTYwMHB4XG4pO1xuXG4kY29udGFpbmVyLW1heC13aWR0aHM6IChcbiAgaXM6IDM4MHB4LFxuICBzbTogNTQwcHgsXG4gIG1kOiA3MjBweCxcbiAgbGc6IDk2MHB4LFxuICB4bDogMTE0MHB4LFxuICB4eGw6IDEzMjBweCxcbiAgeHh4bDogMTUwMHB4XG4pO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xufVxuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xuICAkbjogaW5kZXgoJGJyZWFrcG9pbnQtbmFtZXMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XG59XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAcmV0dXJuIGlmKCRuZXh0LCBicmVha3BvaW50LW1pbigkbmV4dCwgJGJyZWFrcG9pbnRzKSAtIDAuMDJweCwgbnVsbCk7XG59XG5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCJAaW1wb3J0ICcuLi8uLi9zdHlsZXMvdGhlbWVzJztcbkBpbXBvcnQgJ35AbmVidWxhci90aGVtZS9zdHlsZXMvZ2xvYmFsL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ35ib290c3RyYXAvc2Nzcy9taXhpbnMvYnJlYWtwb2ludHMnO1xuXG5AaW5jbHVkZSBuYi1pbnN0YWxsLWNvbXBvbmVudCgpIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAuc29jaWFscyB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuXG4gICAgYSB7XG4gICAgICBwYWRkaW5nOiAwLjRyZW07XG4gICAgICBjb2xvcjogbmItdGhlbWUoY29sb3ItZmcpO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgZWFzZS1vdXQgMC4xcztcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBuYi10aGVtZShjb2xvci1mZy1oZWFkaW5nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oaXMpIHtcbiAgICAuc29jaWFscyB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gb2YgdGhlIG5leHQgb25lIGxlc3MgMC4wMnB4XG4vLyB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2YgYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAuMDJweCwgbnVsbCk7XG59XG5cbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW5mcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiJdfQ== */\"","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngx-footer',\n styleUrls: ['./footer.component.scss'],\n template: `\n Created with ♥ by Recursive Info Pvt. Ltd. 2017\n
\n \n \n \n \n
\n `,\n})\nexport class FooterComponent {\n}\n","export class CmpDetail\r\n{\r\n constructor(\r\n public cmpName:string='',\r\n public cmpYear:string=''\r\n ){}\r\n\r\n}\r\nexport class UserInfo\r\n{\r\n constructor(\r\n public name: string='',\r\n public picture: string=''\r\n ) {}\r\n}\r\n","module.exports = \"
\\n
\\n \\n \\n
\\n {{cmpDetail.cmpName}}\\n
\\n
\\n
\\n\\n
\\n \\n\\n \\n \\n \\n\\n \\n\\n \\n
\\n {{ branch }}\\n
\\n
\\n\\n \\n \\n\\n \\n
\\n {{ curYear }}\\n
\\n
\\n\\n\\n \\n\\n
\\n
\"","module.exports = \"/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This is a starting point where we declare the maps of themes and globally available functions/mixins\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This mixin generates keyfames.\\n * Because of all keyframes can't be scoped,\\n * we need to puts unique name in each btn-pulse call.\\n */\\n/*\\n\\nAccording to the specification (https://www.w3.org/TR/css-scoping-1/#host-selector)\\n:host and :host-context are pseudo-classes. So we assume they could be combined,\\nlike other pseudo-classes, even same ones.\\nFor example: ':nth-of-type(2n):nth-of-type(even)'.\\n\\nIdeal solution would be to prepend any selector with :host-context([dir=rtl]).\\nThen nebular components will behave as an html element and respond to [dir] attribute on any level,\\nso direction could be overridden on any component level.\\n\\nImplementation code:\\n\\n@mixin nb-rtl() {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n @at-root {selector-append(':host-context([dir=rtl])', &)} {\\n @content;\\n }\\n}\\n\\nAnd when we call it somewhere:\\n\\n:host {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n:host-context(...) {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n\\nResult will look like:\\n\\n:host-context([dir=rtl]):host .some-class {\\n ...\\n}\\n:host-context([dir=rtl]):host-context(...) .some-class {\\n ...\\n}\\n\\n*\\n Side note:\\n :host-context():host selector are valid. https://lists.w3.org/Archives/Public/www-style/2015Feb/0305.html\\n\\n :host-context([dir=rtl]):host-context(...) should match any permutation,\\n so order is not important.\\n*\\n\\n\\nCurrently, there're two problems with this approach:\\n\\nFirst, is that we can't combine :host, :host-context. Angular bugs #14349, #19199.\\nFor the moment of writing, the only possible way is:\\n:host {\\n :host-context(...) {\\n ...\\n }\\n}\\nIt doesn't work for us because mixin could be called somewhere deeper, like:\\n:host {\\n p {\\n @include nb-rtl() { ... }\\n }\\n}\\nWe are not able to go up to :host level to place content passed to mixin.\\n\\nThe second problem is that we only can be sure that we appending :host-context([dir=rtl]) to another\\n:host/:host-context pseudo-class when called in theme files (*.theme.scss).\\n *\\n Side note:\\n Currently, nb-install-component uses another approach where :host prepended with the theme name\\n (https://github.com/angular/angular/blob/5b96078624b0a4760f2dbcf6fdf0bd62791be5bb/packages/compiler/src/shadow_css.ts#L441),\\n but it was made to be able to use current realization of rtl and it can be rewritten back to\\n :host-context($theme) once we will be able to use multiple shadow selectors.\\n *\\nBut when it's called in *.component.scss we can't be sure, that selector starts with :host/:host-context,\\nbecause angular allows omitting pseudo-classes if we don't need to style :host component itself.\\nWe can break such selectors, by just appending :host-context([dir=rtl]) to them.\\n ***\\n Possible solution\\n check if we in theme by some theme variables and if so append, otherwise nest like\\n @at-root :host-context([dir=rtl]) {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n {&} {\\n @content;\\n }\\n }\\n What if :host specified? Can we add space in :host-context(...) :host?\\n Or maybe add :host selector anyway? If multiple :host selectors are allowed\\n ***\\n\\n\\nProblems with the current approach.\\n\\n1. Direction can be applied only on document level, because mixin prepends theme class,\\nwhich placed on the body.\\n2. *.component.scss styles should be in :host selector. Otherwise angular will add host\\nattribute to [dir=rtl] attribute as well.\\n\\n\\nGeneral problems.\\n\\nLtr is default document direction, but for proper work of nb-ltr (means ltr only),\\n[dir=ltr] should be specified at least somewhere. ':not([dir=rtl]' not applicable here,\\nbecause it's satisfy any parent, that don't have [dir=rtl] attribute.\\nPrevious approach was to use single rtl mixin and reset ltr properties to initial value.\\nBut sometimes it's hard to find, what the previous value should be. And such mixin call looks too verbose.\\n*/\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This mixin generates keyfames.\\n * Because of all keyframes can't be scoped,\\n * we need to puts unique name in each btn-pulse call.\\n */\\n/*\\n\\nAccording to the specification (https://www.w3.org/TR/css-scoping-1/#host-selector)\\n:host and :host-context are pseudo-classes. So we assume they could be combined,\\nlike other pseudo-classes, even same ones.\\nFor example: ':nth-of-type(2n):nth-of-type(even)'.\\n\\nIdeal solution would be to prepend any selector with :host-context([dir=rtl]).\\nThen nebular components will behave as an html element and respond to [dir] attribute on any level,\\nso direction could be overridden on any component level.\\n\\nImplementation code:\\n\\n@mixin nb-rtl() {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n @at-root {selector-append(':host-context([dir=rtl])', &)} {\\n @content;\\n }\\n}\\n\\nAnd when we call it somewhere:\\n\\n:host {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n:host-context(...) {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n\\nResult will look like:\\n\\n:host-context([dir=rtl]):host .some-class {\\n ...\\n}\\n:host-context([dir=rtl]):host-context(...) .some-class {\\n ...\\n}\\n\\n*\\n Side note:\\n :host-context():host selector are valid. https://lists.w3.org/Archives/Public/www-style/2015Feb/0305.html\\n\\n :host-context([dir=rtl]):host-context(...) should match any permutation,\\n so order is not important.\\n*\\n\\n\\nCurrently, there're two problems with this approach:\\n\\nFirst, is that we can't combine :host, :host-context. Angular bugs #14349, #19199.\\nFor the moment of writing, the only possible way is:\\n:host {\\n :host-context(...) {\\n ...\\n }\\n}\\nIt doesn't work for us because mixin could be called somewhere deeper, like:\\n:host {\\n p {\\n @include nb-rtl() { ... }\\n }\\n}\\nWe are not able to go up to :host level to place content passed to mixin.\\n\\nThe second problem is that we only can be sure that we appending :host-context([dir=rtl]) to another\\n:host/:host-context pseudo-class when called in theme files (*.theme.scss).\\n *\\n Side note:\\n Currently, nb-install-component uses another approach where :host prepended with the theme name\\n (https://github.com/angular/angular/blob/5b96078624b0a4760f2dbcf6fdf0bd62791be5bb/packages/compiler/src/shadow_css.ts#L441),\\n but it was made to be able to use current realization of rtl and it can be rewritten back to\\n :host-context($theme) once we will be able to use multiple shadow selectors.\\n *\\nBut when it's called in *.component.scss we can't be sure, that selector starts with :host/:host-context,\\nbecause angular allows omitting pseudo-classes if we don't need to style :host component itself.\\nWe can break such selectors, by just appending :host-context([dir=rtl]) to them.\\n ***\\n Possible solution\\n check if we in theme by some theme variables and if so append, otherwise nest like\\n @at-root :host-context([dir=rtl]) {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n {&} {\\n @content;\\n }\\n }\\n What if :host specified? Can we add space in :host-context(...) :host?\\n Or maybe add :host selector anyway? If multiple :host selectors are allowed\\n ***\\n\\n\\nProblems with the current approach.\\n\\n1. Direction can be applied only on document level, because mixin prepends theme class,\\nwhich placed on the body.\\n2. *.component.scss styles should be in :host selector. Otherwise angular will add host\\nattribute to [dir=rtl] attribute as well.\\n\\n\\nGeneral problems.\\n\\nLtr is default document direction, but for proper work of nb-ltr (means ltr only),\\n[dir=ltr] should be specified at least somewhere. ':not([dir=rtl]' not applicable here,\\nbecause it's satisfy any parent, that don't have [dir=rtl] attribute.\\nPrevious approach was to use single rtl mixin and reset ltr properties to initial value.\\nBut sometimes it's hard to find, what the previous value should be. And such mixin call looks too verbose.\\n*/\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This mixin generates keyfames.\\n * Because of all keyframes can't be scoped,\\n * we need to puts unique name in each btn-pulse call.\\n */\\n/*\\n\\nAccording to the specification (https://www.w3.org/TR/css-scoping-1/#host-selector)\\n:host and :host-context are pseudo-classes. So we assume they could be combined,\\nlike other pseudo-classes, even same ones.\\nFor example: ':nth-of-type(2n):nth-of-type(even)'.\\n\\nIdeal solution would be to prepend any selector with :host-context([dir=rtl]).\\nThen nebular components will behave as an html element and respond to [dir] attribute on any level,\\nso direction could be overridden on any component level.\\n\\nImplementation code:\\n\\n@mixin nb-rtl() {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n @at-root {selector-append(':host-context([dir=rtl])', &)} {\\n @content;\\n }\\n}\\n\\nAnd when we call it somewhere:\\n\\n:host {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n:host-context(...) {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n\\nResult will look like:\\n\\n:host-context([dir=rtl]):host .some-class {\\n ...\\n}\\n:host-context([dir=rtl]):host-context(...) .some-class {\\n ...\\n}\\n\\n*\\n Side note:\\n :host-context():host selector are valid. https://lists.w3.org/Archives/Public/www-style/2015Feb/0305.html\\n\\n :host-context([dir=rtl]):host-context(...) should match any permutation,\\n so order is not important.\\n*\\n\\n\\nCurrently, there're two problems with this approach:\\n\\nFirst, is that we can't combine :host, :host-context. Angular bugs #14349, #19199.\\nFor the moment of writing, the only possible way is:\\n:host {\\n :host-context(...) {\\n ...\\n }\\n}\\nIt doesn't work for us because mixin could be called somewhere deeper, like:\\n:host {\\n p {\\n @include nb-rtl() { ... }\\n }\\n}\\nWe are not able to go up to :host level to place content passed to mixin.\\n\\nThe second problem is that we only can be sure that we appending :host-context([dir=rtl]) to another\\n:host/:host-context pseudo-class when called in theme files (*.theme.scss).\\n *\\n Side note:\\n Currently, nb-install-component uses another approach where :host prepended with the theme name\\n (https://github.com/angular/angular/blob/5b96078624b0a4760f2dbcf6fdf0bd62791be5bb/packages/compiler/src/shadow_css.ts#L441),\\n but it was made to be able to use current realization of rtl and it can be rewritten back to\\n :host-context($theme) once we will be able to use multiple shadow selectors.\\n *\\nBut when it's called in *.component.scss we can't be sure, that selector starts with :host/:host-context,\\nbecause angular allows omitting pseudo-classes if we don't need to style :host component itself.\\nWe can break such selectors, by just appending :host-context([dir=rtl]) to them.\\n ***\\n Possible solution\\n check if we in theme by some theme variables and if so append, otherwise nest like\\n @at-root :host-context([dir=rtl]) {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n {&} {\\n @content;\\n }\\n }\\n What if :host specified? Can we add space in :host-context(...) :host?\\n Or maybe add :host selector anyway? If multiple :host selectors are allowed\\n ***\\n\\n\\nProblems with the current approach.\\n\\n1. Direction can be applied only on document level, because mixin prepends theme class,\\nwhich placed on the body.\\n2. *.component.scss styles should be in :host selector. Otherwise angular will add host\\nattribute to [dir=rtl] attribute as well.\\n\\n\\nGeneral problems.\\n\\nLtr is default document direction, but for proper work of nb-ltr (means ltr only),\\n[dir=ltr] should be specified at least somewhere. ':not([dir=rtl]' not applicable here,\\nbecause it's satisfy any parent, that don't have [dir=rtl] attribute.\\nPrevious approach was to use single rtl mixin and reset ltr properties to initial value.\\nBut sometimes it's hard to find, what the previous value should be. And such mixin call looks too verbose.\\n*/\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This mixin generates keyfames.\\n * Because of all keyframes can't be scoped,\\n * we need to puts unique name in each btn-pulse call.\\n */\\n/*\\n\\nAccording to the specification (https://www.w3.org/TR/css-scoping-1/#host-selector)\\n:host and :host-context are pseudo-classes. So we assume they could be combined,\\nlike other pseudo-classes, even same ones.\\nFor example: ':nth-of-type(2n):nth-of-type(even)'.\\n\\nIdeal solution would be to prepend any selector with :host-context([dir=rtl]).\\nThen nebular components will behave as an html element and respond to [dir] attribute on any level,\\nso direction could be overridden on any component level.\\n\\nImplementation code:\\n\\n@mixin nb-rtl() {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n @at-root {selector-append(':host-context([dir=rtl])', &)} {\\n @content;\\n }\\n}\\n\\nAnd when we call it somewhere:\\n\\n:host {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n:host-context(...) {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n\\nResult will look like:\\n\\n:host-context([dir=rtl]):host .some-class {\\n ...\\n}\\n:host-context([dir=rtl]):host-context(...) .some-class {\\n ...\\n}\\n\\n*\\n Side note:\\n :host-context():host selector are valid. https://lists.w3.org/Archives/Public/www-style/2015Feb/0305.html\\n\\n :host-context([dir=rtl]):host-context(...) should match any permutation,\\n so order is not important.\\n*\\n\\n\\nCurrently, there're two problems with this approach:\\n\\nFirst, is that we can't combine :host, :host-context. Angular bugs #14349, #19199.\\nFor the moment of writing, the only possible way is:\\n:host {\\n :host-context(...) {\\n ...\\n }\\n}\\nIt doesn't work for us because mixin could be called somewhere deeper, like:\\n:host {\\n p {\\n @include nb-rtl() { ... }\\n }\\n}\\nWe are not able to go up to :host level to place content passed to mixin.\\n\\nThe second problem is that we only can be sure that we appending :host-context([dir=rtl]) to another\\n:host/:host-context pseudo-class when called in theme files (*.theme.scss).\\n *\\n Side note:\\n Currently, nb-install-component uses another approach where :host prepended with the theme name\\n (https://github.com/angular/angular/blob/5b96078624b0a4760f2dbcf6fdf0bd62791be5bb/packages/compiler/src/shadow_css.ts#L441),\\n but it was made to be able to use current realization of rtl and it can be rewritten back to\\n :host-context($theme) once we will be able to use multiple shadow selectors.\\n *\\nBut when it's called in *.component.scss we can't be sure, that selector starts with :host/:host-context,\\nbecause angular allows omitting pseudo-classes if we don't need to style :host component itself.\\nWe can break such selectors, by just appending :host-context([dir=rtl]) to them.\\n ***\\n Possible solution\\n check if we in theme by some theme variables and if so append, otherwise nest like\\n @at-root :host-context([dir=rtl]) {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n {&} {\\n @content;\\n }\\n }\\n What if :host specified? Can we add space in :host-context(...) :host?\\n Or maybe add :host selector anyway? If multiple :host selectors are allowed\\n ***\\n\\n\\nProblems with the current approach.\\n\\n1. Direction can be applied only on document level, because mixin prepends theme class,\\nwhich placed on the body.\\n2. *.component.scss styles should be in :host selector. Otherwise angular will add host\\nattribute to [dir=rtl] attribute as well.\\n\\n\\nGeneral problems.\\n\\nLtr is default document direction, but for proper work of nb-ltr (means ltr only),\\n[dir=ltr] should be specified at least somewhere. ':not([dir=rtl]' not applicable here,\\nbecause it's satisfy any parent, that don't have [dir=rtl] attribute.\\nPrevious approach was to use single rtl mixin and reset ltr properties to initial value.\\nBut sometimes it's hard to find, what the previous value should be. And such mixin call looks too verbose.\\n*/\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This mixin generates keyfames.\\n * Because of all keyframes can't be scoped,\\n * we need to puts unique name in each btn-pulse call.\\n */\\n/*\\n\\nAccording to the specification (https://www.w3.org/TR/css-scoping-1/#host-selector)\\n:host and :host-context are pseudo-classes. So we assume they could be combined,\\nlike other pseudo-classes, even same ones.\\nFor example: ':nth-of-type(2n):nth-of-type(even)'.\\n\\nIdeal solution would be to prepend any selector with :host-context([dir=rtl]).\\nThen nebular components will behave as an html element and respond to [dir] attribute on any level,\\nso direction could be overridden on any component level.\\n\\nImplementation code:\\n\\n@mixin nb-rtl() {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n @at-root {selector-append(':host-context([dir=rtl])', &)} {\\n @content;\\n }\\n}\\n\\nAnd when we call it somewhere:\\n\\n:host {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n:host-context(...) {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n\\nResult will look like:\\n\\n:host-context([dir=rtl]):host .some-class {\\n ...\\n}\\n:host-context([dir=rtl]):host-context(...) .some-class {\\n ...\\n}\\n\\n*\\n Side note:\\n :host-context():host selector are valid. https://lists.w3.org/Archives/Public/www-style/2015Feb/0305.html\\n\\n :host-context([dir=rtl]):host-context(...) should match any permutation,\\n so order is not important.\\n*\\n\\n\\nCurrently, there're two problems with this approach:\\n\\nFirst, is that we can't combine :host, :host-context. Angular bugs #14349, #19199.\\nFor the moment of writing, the only possible way is:\\n:host {\\n :host-context(...) {\\n ...\\n }\\n}\\nIt doesn't work for us because mixin could be called somewhere deeper, like:\\n:host {\\n p {\\n @include nb-rtl() { ... }\\n }\\n}\\nWe are not able to go up to :host level to place content passed to mixin.\\n\\nThe second problem is that we only can be sure that we appending :host-context([dir=rtl]) to another\\n:host/:host-context pseudo-class when called in theme files (*.theme.scss).\\n *\\n Side note:\\n Currently, nb-install-component uses another approach where :host prepended with the theme name\\n (https://github.com/angular/angular/blob/5b96078624b0a4760f2dbcf6fdf0bd62791be5bb/packages/compiler/src/shadow_css.ts#L441),\\n but it was made to be able to use current realization of rtl and it can be rewritten back to\\n :host-context($theme) once we will be able to use multiple shadow selectors.\\n *\\nBut when it's called in *.component.scss we can't be sure, that selector starts with :host/:host-context,\\nbecause angular allows omitting pseudo-classes if we don't need to style :host component itself.\\nWe can break such selectors, by just appending :host-context([dir=rtl]) to them.\\n ***\\n Possible solution\\n check if we in theme by some theme variables and if so append, otherwise nest like\\n @at-root :host-context([dir=rtl]) {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n {&} {\\n @content;\\n }\\n }\\n What if :host specified? Can we add space in :host-context(...) :host?\\n Or maybe add :host selector anyway? If multiple :host selectors are allowed\\n ***\\n\\n\\nProblems with the current approach.\\n\\n1. Direction can be applied only on document level, because mixin prepends theme class,\\nwhich placed on the body.\\n2. *.component.scss styles should be in :host selector. Otherwise angular will add host\\nattribute to [dir=rtl] attribute as well.\\n\\n\\nGeneral problems.\\n\\nLtr is default document direction, but for proper work of nb-ltr (means ltr only),\\n[dir=ltr] should be specified at least somewhere. ':not([dir=rtl]' not applicable here,\\nbecause it's satisfy any parent, that don't have [dir=rtl] attribute.\\nPrevious approach was to use single rtl mixin and reset ltr properties to initial value.\\nBut sometimes it's hard to find, what the previous value should be. And such mixin call looks too verbose.\\n*/\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This mixin generates keyfames.\\n * Because of all keyframes can't be scoped,\\n * we need to puts unique name in each btn-pulse call.\\n */\\n/*\\n\\nAccording to the specification (https://www.w3.org/TR/css-scoping-1/#host-selector)\\n:host and :host-context are pseudo-classes. So we assume they could be combined,\\nlike other pseudo-classes, even same ones.\\nFor example: ':nth-of-type(2n):nth-of-type(even)'.\\n\\nIdeal solution would be to prepend any selector with :host-context([dir=rtl]).\\nThen nebular components will behave as an html element and respond to [dir] attribute on any level,\\nso direction could be overridden on any component level.\\n\\nImplementation code:\\n\\n@mixin nb-rtl() {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n @at-root {selector-append(':host-context([dir=rtl])', &)} {\\n @content;\\n }\\n}\\n\\nAnd when we call it somewhere:\\n\\n:host {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n:host-context(...) {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n\\nResult will look like:\\n\\n:host-context([dir=rtl]):host .some-class {\\n ...\\n}\\n:host-context([dir=rtl]):host-context(...) .some-class {\\n ...\\n}\\n\\n*\\n Side note:\\n :host-context():host selector are valid. https://lists.w3.org/Archives/Public/www-style/2015Feb/0305.html\\n\\n :host-context([dir=rtl]):host-context(...) should match any permutation,\\n so order is not important.\\n*\\n\\n\\nCurrently, there're two problems with this approach:\\n\\nFirst, is that we can't combine :host, :host-context. Angular bugs #14349, #19199.\\nFor the moment of writing, the only possible way is:\\n:host {\\n :host-context(...) {\\n ...\\n }\\n}\\nIt doesn't work for us because mixin could be called somewhere deeper, like:\\n:host {\\n p {\\n @include nb-rtl() { ... }\\n }\\n}\\nWe are not able to go up to :host level to place content passed to mixin.\\n\\nThe second problem is that we only can be sure that we appending :host-context([dir=rtl]) to another\\n:host/:host-context pseudo-class when called in theme files (*.theme.scss).\\n *\\n Side note:\\n Currently, nb-install-component uses another approach where :host prepended with the theme name\\n (https://github.com/angular/angular/blob/5b96078624b0a4760f2dbcf6fdf0bd62791be5bb/packages/compiler/src/shadow_css.ts#L441),\\n but it was made to be able to use current realization of rtl and it can be rewritten back to\\n :host-context($theme) once we will be able to use multiple shadow selectors.\\n *\\nBut when it's called in *.component.scss we can't be sure, that selector starts with :host/:host-context,\\nbecause angular allows omitting pseudo-classes if we don't need to style :host component itself.\\nWe can break such selectors, by just appending :host-context([dir=rtl]) to them.\\n ***\\n Possible solution\\n check if we in theme by some theme variables and if so append, otherwise nest like\\n @at-root :host-context([dir=rtl]) {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n {&} {\\n @content;\\n }\\n }\\n What if :host specified? Can we add space in :host-context(...) :host?\\n Or maybe add :host selector anyway? If multiple :host selectors are allowed\\n ***\\n\\n\\nProblems with the current approach.\\n\\n1. Direction can be applied only on document level, because mixin prepends theme class,\\nwhich placed on the body.\\n2. *.component.scss styles should be in :host selector. Otherwise angular will add host\\nattribute to [dir=rtl] attribute as well.\\n\\n\\nGeneral problems.\\n\\nLtr is default document direction, but for proper work of nb-ltr (means ltr only),\\n[dir=ltr] should be specified at least somewhere. ':not([dir=rtl]' not applicable here,\\nbecause it's satisfy any parent, that don't have [dir=rtl] attribute.\\nPrevious approach was to use single rtl mixin and reset ltr properties to initial value.\\nBut sometimes it's hard to find, what the previous value should be. And such mixin call looks too verbose.\\n*/\\n/*!\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/*\\n :host can be prefixed\\n https://github.com/angular/angular/blob/8d0ee34939f14c07876d222c25b405ed458a34d3/packages/compiler/src/shadow_css.ts#L441\\n\\n We have to use :host insted of :host-context($theme), to be able to prefix theme class\\n with something defined inside of @content, by prefixing &.\\n For example this scss code:\\n .nb-theme-default {\\n .some-selector & {\\n ...\\n }\\n }\\n Will result in next css:\\n .some-selector .nb-theme-default {\\n ...\\n }\\n\\n It doesn't work with :host-context because angular splitting it in two selectors and removes\\n prefix in one of the selectors.\\n */\\n.nb-theme-corporate :host {\\n display: flex;\\n justify-content: space-between;\\n width: 100%; }\\n.nb-theme-corporate :host .left {\\n display: flex;\\n width: 100%;\\n order: 0;\\n flex-direction: row; }\\n.nb-theme-corporate :host .right {\\n order: 1;\\n flex-direction: row-reverse; }\\n.nb-theme-corporate :host .logo-containter {\\n display: flex;\\n align-items: center;\\n width: calc(16rem - 1.25rem); }\\n.nb-theme-corporate :host .control-item {\\n display: block; }\\n.nb-theme-corporate :host .header-container {\\n display: flex;\\n align-items: center;\\n width: auto; }\\n.nb-theme-corporate :host .header-container .navigation {\\n font-size: 2.5rem;\\n text-decoration: none; }\\n[dir=ltr] .nb-theme-corporate :host .header-container .navigation {\\n padding-right: 1.25rem; }\\n[dir=rtl] .nb-theme-corporate :host .header-container .navigation {\\n padding-left: 1.25rem; }\\n.nb-theme-corporate :host .header-container .navigation i {\\n display: block; }\\n.nb-theme-corporate :host .header-container .logo {\\n padding: 0 1.25rem;\\n font-size: 1.75rem;\\n font-weight: 500;\\n white-space: nowrap; }\\n[dir=ltr] .nb-theme-corporate :host .header-container .logo {\\n border-left: 1px solid #cdd5dc; }\\n[dir=rtl] .nb-theme-corporate :host .header-container .logo {\\n border-right: 1px solid #cdd5dc; }\\n.nb-theme-corporate :host .header-container .logo span {\\n font-weight: 400; }\\n[dir=ltr] .nb-theme-corporate :host nb-action {\\n border-left-color: #3f4550; }\\n[dir=rtl] .nb-theme-corporate :host nb-action {\\n border-right-color: #3f4550; }\\n[dir=ltr] .nb-theme-corporate :host .header-container .logo {\\n border: none; }\\n[dir=rtl] .nb-theme-corporate :host .header-container .logo {\\n border: none; }\\n.nb-theme-corporate :host .header-container /deep/ ngx-theme-switcher .dropdown-toggle {\\n color: #ffffff;\\n background: transparent; }\\n.nb-theme-corporate :host ngx-layout-direction-switcher {\\n margin: 0 1.5rem; }\\n.nb-theme-corporate :host ngx-theme-switcher {\\n margin: 2.25rem 2.25rem 0.75rem;\\n margin-top: 0;\\n margin-bottom: 0; }\\n@media (max-width: 1399.98px) {\\n .nb-theme-corporate :host ngx-layout-direction-switcher {\\n display: none; } }\\n.nb-theme-corporate :host .toggle-layout /deep/ a {\\n display: block;\\n text-decoration: none;\\n line-height: 1; }\\n.nb-theme-corporate :host .toggle-layout /deep/ a i {\\n color: #a4abb3;\\n font-size: 2.25rem;\\n border-radius: 50%;\\n position: relative;\\n -webkit-animation-name: pulse-light;\\n animation-name: pulse-light; }\\n.nb-theme-corporate :host .toggle-layout /deep/ a i::after {\\n content: ' ';\\n background-image: url(\\\"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\\\");\\n border-radius: 50%;\\n pointer-events: none;\\n position: absolute;\\n top: 52.3%;\\n left: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n width: 13%;\\n height: 13%;\\n -webkit-animation: 3s linear infinite pulse;\\n animation: 3s linear infinite pulse; }\\n@-webkit-keyframes pulse {\\n 0% {\\n box-shadow: 0 0 1px 0 rgba(164, 171, 179, 0); }\\n 20% {\\n box-shadow: 0 0 3px 10px rgba(164, 171, 179, 0.4); }\\n 100% {\\n box-shadow: 0 0 5px 20px rgba(164, 171, 179, 0); } }\\n@keyframes pulse {\\n 0% {\\n box-shadow: 0 0 1px 0 rgba(164, 171, 179, 0); }\\n 20% {\\n box-shadow: 0 0 3px 10px rgba(164, 171, 179, 0.4); }\\n 100% {\\n box-shadow: 0 0 5px 20px rgba(164, 171, 179, 0); } }\\n@-webkit-keyframes pulse-light {\\n 0% {\\n box-shadow: 0 0 1px 0 rgba(115, 255, 208, 0); }\\n 20% {\\n box-shadow: 0 0 3px 10px rgba(115, 255, 208, 0.4); }\\n 100% {\\n box-shadow: 0 0 5px 20px rgba(115, 255, 208, 0); } }\\n@keyframes pulse-light {\\n 0% {\\n box-shadow: 0 0 1px 0 rgba(115, 255, 208, 0); }\\n 20% {\\n box-shadow: 0 0 3px 10px rgba(115, 255, 208, 0.4); }\\n 100% {\\n box-shadow: 0 0 5px 20px rgba(115, 255, 208, 0); } }\\n@media (max-width: 991.98px) {\\n .nb-theme-corporate :host nb-action:not(.toggle-layout) {\\n border: none; }\\n .nb-theme-corporate :host .control-item {\\n display: none; }\\n .nb-theme-corporate :host .toggle-layout {\\n padding: 0; }\\n .nb-theme-corporate :host ngx-layout-direction-switcher {\\n display: none; }\\n .nb-theme-corporate :host ngx-theme-switcher {\\n margin: 0 0.5rem; } }\\n@media (max-width: 767.98px) {\\n .nb-theme-corporate :host nb-user /deep/ .user-name {\\n display: none; } }\\n@media (max-width: 575.98px) {\\n .nb-theme-corporate :host .header-container .logo {\\n font-size: 1.25rem; }\\n .nb-theme-corporate :host .toggle-layout {\\n display: none; }\\n .nb-theme-corporate :host ngx-theme-switcher {\\n display: none; }\\n .nb-theme-corporate :host nb-action:not(.toggle-layout) {\\n padding: 0; } }\\n@media (max-width: 399.98px) {\\n .nb-theme-corporate :host .right /deep/ {\\n display: none; } }\\n.logo-containter {\\n width: 100% !important; }\\n.logo-containter .themes-switcher span {\\n position: relative;\\n font-size: 19px;\\n margin-top: -1px;\\n display: inline-block;\\n color: #68b92e;\\n font-weight: 600;\\n margin-left: -2px; }\\nnav.fixed {\\n height: 52px !important; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvQHRoZW1lL2NvbXBvbmVudHMvaGVhZGVyL0U6XFxBbmd1bGFyXFxSZWNXZWJcXFJlY0Zyb250ZW5kL25vZGVfbW9kdWxlc1xcQG5lYnVsYXJcXHRoZW1lXFxzdHlsZXNcXF90aGVtaW5nLnNjc3MiLCJzcmMvYXBwL0B0aGVtZS9jb21wb25lbnRzL2hlYWRlci9FOlxcQW5ndWxhclxcUmVjV2ViXFxSZWNGcm9udGVuZC9ub2RlX21vZHVsZXNcXEBuZWJ1bGFyXFx0aGVtZVxcc3R5bGVzXFxjb3JlXFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL0B0aGVtZS9jb21wb25lbnRzL2hlYWRlci9FOlxcQW5ndWxhclxcUmVjV2ViXFxSZWNGcm9udGVuZC9ub2RlX21vZHVsZXNcXEBuZWJ1bGFyXFx0aGVtZVxcc3R5bGVzXFxjb3JlXFxfZnVuY3Rpb25zLnNjc3MiLCJzcmMvYXBwL0B0aGVtZS9jb21wb25lbnRzL2hlYWRlci9FOlxcQW5ndWxhclxcUmVjV2ViXFxSZWNGcm9udGVuZC9ub2RlX21vZHVsZXNcXEBuZWJ1bGFyXFx0aGVtZVxcc3R5bGVzXFx0aGVtZXNcXF9kZWZhdWx0LnNjc3MiLCJzcmMvYXBwL0B0aGVtZS9jb21wb25lbnRzL2hlYWRlci9FOlxcQW5ndWxhclxcUmVjV2ViXFxSZWNGcm9udGVuZC9ub2RlX21vZHVsZXNcXEBuZWJ1bGFyXFx0aGVtZVxcc3R5bGVzXFx0aGVtZXNcXF9jb3NtaWMuc2NzcyIsInNyYy9hcHAvQHRoZW1lL2NvbXBvbmVudHMvaGVhZGVyL0U6XFxBbmd1bGFyXFxSZWNXZWJcXFJlY0Zyb250ZW5kL25vZGVfbW9kdWxlc1xcQG5lYnVsYXJcXHRoZW1lXFxzdHlsZXNcXHRoZW1lc1xcX2NvcnBvcmF0ZS5zY3NzIiwic3JjL2FwcC9AdGhlbWUvY29tcG9uZW50cy9oZWFkZXIvRTpcXEFuZ3VsYXJcXFJlY1dlYlxcUmVjRnJvbnRlbmQvbm9kZV9tb2R1bGVzXFxAbmVidWxhclxcdGhlbWVcXHN0eWxlc1xcZ2xvYmFsXFxfYnJlYWtwb2ludHMuc2NzcyIsInNyYy9hcHAvQHRoZW1lL2NvbXBvbmVudHMvaGVhZGVyL0U6XFxBbmd1bGFyXFxSZWNXZWJcXFJlY0Zyb250ZW5kL3NyY1xcYXBwXFxAdGhlbWVcXGNvbXBvbmVudHNcXGhlYWRlclxcaGVhZGVyLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9AdGhlbWUvY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFHSDs7R0FFRztBQ1RIOzs7O0dBSUc7QUFzS0g7Ozs7R0FJRztBQXNCSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1IRTtBQ3ZURjs7OztHQUlHO0FDSkg7Ozs7R0FJRztBREpIOzs7O0dBSUc7QURKSDs7OztHQUlHO0FBc0tIOzs7O0dBSUc7QUFzQkg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtSEU7QUd2VEY7Ozs7R0FJRztBRkpIOzs7O0dBSUc7QURKSDs7OztHQUlHO0FBc0tIOzs7O0dBSUc7QUFzQkg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtSEU7QUV2VEY7Ozs7R0FJRztBREpIOzs7O0dBSUc7QURKSDs7OztHQUlHO0FBc0tIOzs7O0dBSUc7QUFzQkg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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a0RBQWlELEVBQUE7RUFHbkQ7SUFDRSxnREFBK0MsRUFBQSxFQUFBO0FEcEdqRDtJQzBHQTtNQUNFLGFBQVksRUFDYjtJQUVEO01BQ0UsY0FBYSxFQUNkO0lBRUQ7TUFDRSxXQUFVLEVBQ1g7SUFFRDtNQUNFLGNBQWEsRUFDZDtJQUVEO01BQ0UsaUJBQWdCLEVBQ2pCLEVBQUE7QUQ1SEQ7SUNpSUE7TUFDRSxjQUFhLEVBQ2QsRUFBQTtBRG5JRDtJQ3lJRTtNQUNFLG1CQUFrQixFQUNuQjtJQUdIO01BQ0UsY0FBYSxFQUNkO0lBRUQ7TUFDRSxjQUFhLEVBQ2Q7SUFFRDtNQUNFLFdBQVUsRUFDWCxFQUFBO0FEeEpEO0lDNEpBO01BQ0UsY0FBYSxFQUNkLEVBQUE7QUFJTDtFQUNFLHVCQUFzQixFQUN2QjtBQUVEO0VBQ0UsbUJBQWtCO0VBQ2xCLGdCQUFlO0VBQ2YsaUJBQWdCO0VBQ2hCLHNCQUFxQjtFQUNyQixlQUFjO0VBQ2QsaUJBQWdCO0VBQ2hCLGtCQUFpQixFQUNsQjtBQUVEO0VBQ0Usd0JBQXVCLEVBQ3hCIiwiZmlsZSI6InNyYy9hcHAvQHRoZW1lL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cblxuXG4vKipcbiAqIFRoaXMgaXMgYSBzdGFydGluZyBwb2ludCB3aGVyZSB3ZSBkZWNsYXJlIHRoZSBtYXBzIG9mIHRoZW1lcyBhbmQgZ2xvYmFsbHkgYXZhaWxhYmxlIGZ1bmN0aW9ucy9taXhpbnNcbiAqL1xuXG5AaW1wb3J0ICdjb3JlL21peGlucyc7XG5AaW1wb3J0ICdjb3JlL2Z1bmN0aW9ucyc7XG5cbiRuYi1lbmFibGVkLXRoZW1lczogKCkgIWdsb2JhbDtcbiRuYi1lbmFibGUtY3NzLXZhcmlhYmxlczogZmFsc2UgIWdsb2JhbDtcblxuJG5iLXRoZW1lczogKCkgIWdsb2JhbDtcbiRuYi10aGVtZXMtbm9uLXByb2Nlc3NlZDogKCkgIWdsb2JhbDtcbiRuYi10aGVtZXMtZXhwb3J0OiAoKSAhZ2xvYmFsO1xuXG5AZnVuY3Rpb24gbmItdGhlbWUoJGtleSkge1xuICBAcmV0dXJuIG1hcC1nZXQoJHRoZW1lLCAka2V5KTtcbn1cblxuQGZ1bmN0aW9uIG5iLWdldC12YWx1ZSgkdGhlbWUsICRrZXksICR2YWx1ZSkge1xuICBAaWYgKHR5cGUtb2YoJHZhbHVlKSA9PSAnc3RyaW5nJykge1xuICAgICR0bXA6IG1hcC1nZXQoJHRoZW1lLCAkdmFsdWUpO1xuXG4gICAgQGlmICgkdG1wICE9IG51bGwpIHtcbiAgICAgIEByZXR1cm4gbmItZ2V0LXZhbHVlKCR0aGVtZSwgJHZhbHVlLCAkdG1wKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIG1hcC1nZXQoJHRoZW1lLCAka2V5KTtcbn1cblxuQGZ1bmN0aW9uIGNvbnZlcnQtdG8tY3NzLXZhcmlhYmxlcygkdmFyaWFibGVzKSB7XG4gICRyZXN1bHQ6ICgpO1xuICBAZWFjaCAkdmFyLCAkdmFsdWUgaW4gJHZhcmlhYmxlcyB7XG4gICAgJHJlc3VsdDogbWFwLXNldCgkcmVzdWx0LCAkdmFyLCAnLS12YXIoI3skdmFyfSknKTtcbiAgfVxuXG4gIEBkZWJ1ZyAkcmVzdWx0O1xuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbkBmdW5jdGlvbiBzZXQtZ2xvYmFsLXRoZW1lLXZhcnMoJHRoZW1lLCAkdGhlbWUtbmFtZSkge1xuICAkdGhlbWU6ICR0aGVtZSAhZ2xvYmFsO1xuICAkdGhlbWUtbmFtZTogJHRoZW1lLW5hbWUgIWdsb2JhbDtcbiAgQGlmICgkbmItZW5hYmxlLWNzcy12YXJpYWJsZXMpIHtcbiAgICAkdGhlbWU6IGNvbnZlcnQtdG8tY3NzLXZhcmlhYmxlcygkdGhlbWUpICFnbG9iYWw7XG4gIH1cbiAgQHJldHVybiAkdGhlbWU7XG59XG5cbkBmdW5jdGlvbiBuYi1yZWdpc3Rlci10aGVtZSgkdGhlbWUsICRuYW1lLCAkZGVmYXVsdDogbnVsbCkge1xuXG4gICR0aGVtZS1kYXRhOiAoKTtcblxuXG4gIEBpZiAoJGRlZmF1bHQgIT0gbnVsbCkge1xuXG4gICAgJHRoZW1lOiBtYXAtbWVyZ2UobWFwLWdldCgkbmItdGhlbWVzLW5vbi1wcm9jZXNzZWQsICRkZWZhdWx0KSwgJHRoZW1lKTtcbiAgICAkbmItdGhlbWVzLW5vbi1wcm9jZXNzZWQ6IG1hcC1zZXQoJG5iLXRoZW1lcy1ub24tcHJvY2Vzc2VkLCAkbmFtZSwgJHRoZW1lKSAhZ2xvYmFsO1xuXG4gICAgJHRoZW1lLWRhdGE6IG1hcC1zZXQoJHRoZW1lLWRhdGEsIGRhdGEsICR0aGVtZSk7XG4gICAgJG5iLXRoZW1lcy1leHBvcnQ6IG1hcC1zZXQoJG5iLXRoZW1lcy1leHBvcnQsICRuYW1lLCBtYXAtc2V0KCR0aGVtZS1kYXRhLCBwYXJlbnQsICRkZWZhdWx0KSkgIWdsb2JhbDtcblxuICB9IEBlbHNlIHtcbiAgICAkbmItdGhlbWVzLW5vbi1wcm9jZXNzZWQ6IG1hcC1zZXQoJG5iLXRoZW1lcy1ub24tcHJvY2Vzc2VkLCAkbmFtZSwgJHRoZW1lKSAhZ2xvYmFsO1xuXG4gICAgJHRoZW1lLWRhdGE6IG1hcC1zZXQoJHRoZW1lLWRhdGEsIGRhdGEsICR0aGVtZSk7XG4gICAgJG5iLXRoZW1lcy1leHBvcnQ6IG1hcC1zZXQoJG5iLXRoZW1lcy1leHBvcnQsICRuYW1lLCBtYXAtc2V0KCR0aGVtZS1kYXRhLCBwYXJlbnQsIG51bGwpKSAhZ2xvYmFsO1xuICB9XG5cbiAgJHRoZW1lLXBhcnNlZDogKCk7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkdGhlbWUge1xuICAgICR0aGVtZS1wYXJzZWQ6IG1hcC1zZXQoJHRoZW1lLXBhcnNlZCwgJGtleSwgbmItZ2V0LXZhbHVlKCR0aGVtZSwgJGtleSwgJHZhbHVlKSk7XG4gIH1cblxuICAvLyBlbmFibGUgcmlnaHQgYXdheSB3aGVuIGluc3RhbGxlZFxuICAkdGhlbWUtcGFyc2VkOiBzZXQtZ2xvYmFsLXRoZW1lLXZhcnMoJHRoZW1lLXBhcnNlZCwgJG5hbWUpO1xuICBAcmV0dXJuIG1hcC1zZXQoJG5iLXRoZW1lcywgJG5hbWUsICR0aGVtZS1wYXJzZWQpO1xufVxuXG5AZnVuY3Rpb24gZ2V0LWVuYWJsZWQtdGhlbWVzKCkge1xuICAkdGhlbWVzLXRvLWluc3RhbGw6ICgpO1xuXG4gIEBpZiAobGVuZ3RoKCRuYi1lbmFibGVkLXRoZW1lcykgPiAwKSB7XG4gICAgQGVhY2ggJHRoZW1lLW5hbWUgaW4gJG5iLWVuYWJsZWQtdGhlbWVzIHtcbiAgICAgICR0aGVtZXMtdG8taW5zdGFsbDogbWFwLXNldCgkdGhlbWVzLXRvLWluc3RhbGwsICR0aGVtZS1uYW1lLCBtYXAtZ2V0KCRuYi10aGVtZXMsICR0aGVtZS1uYW1lKSk7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAkdGhlbWVzLXRvLWluc3RhbGw6ICRuYi10aGVtZXM7XG4gIH1cblxuICBAcmV0dXJuICR0aGVtZXMtdG8taW5zdGFsbDtcbn1cblxuQG1peGluIGluc3RhbGwtY3NzLXZhcmlhYmxlcygkdGhlbWUtbmFtZSwgJHZhcmlhYmxlcykge1xuICAubmItdGhlbWUtI3skdGhlbWUtbmFtZX0ge1xuICAgIEBlYWNoICR2YXIsICR2YWx1ZSBpbiAkdmFyaWFibGVzIHtcbiAgICAgIC0tI3skdmFyfTogJHZhbHVlO1xuICAgIH1cbiAgfVxufVxuXG4vLyBUT0RPOiB3ZSBoaWRlIDpob3N0IGluc2lkZSBvZiBpdCB3aGljaCBpcyBub3Qgb2J2aW91c1xuQG1peGluIG5iLWluc3RhbGwtY29tcG9uZW50KCkge1xuXG4gICR0aGVtZXMtdG8taW5zdGFsbDogZ2V0LWVuYWJsZWQtdGhlbWVzKCk7XG5cbiAgQGVhY2ggJHRoZW1lLW5hbWUsICR0aGVtZSBpbiAkdGhlbWVzLXRvLWluc3RhbGwge1xuICAgIC8qXG4gICAgICA6aG9zdCBjYW4gYmUgcHJlZml4ZWRcbiAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi84ZDBlZTM0OTM5ZjE0YzA3ODc2ZDIyMmMyNWI0MDVlZDQ1OGEzNGQzL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy9zaGFkb3dfY3NzLnRzI0w0NDFcblxuICAgICAgV2UgaGF2ZSB0byB1c2UgOmhvc3QgaW5zdGVkIG9mIDpob3N0LWNvbnRleHQoJHRoZW1lKSwgdG8gYmUgYWJsZSB0byBwcmVmaXggdGhlbWUgY2xhc3NcbiAgICAgIHdpdGggc29tZXRoaW5nIGRlZmluZWQgaW5zaWRlIG9mIEBjb250ZW50LCBieSBwcmVmaXhpbmcgJi5cbiAgICAgIEZvciBleGFtcGxlIHRoaXMgc2NzcyBjb2RlOlxuICAgICAgICAubmItdGhlbWUtZGVmYXVsdCB7XG4gICAgICAgICAgLnNvbWUtc2VsZWN0b3IgJiB7XG4gICAgICAgICAgICAuLi5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIFdpbGwgcmVzdWx0IGluIG5leHQgY3NzOlxuICAgICAgICAuc29tZS1zZWxlY3RvciAubmItdGhlbWUtZGVmYXVsdCB7XG4gICAgICAgICAgLi4uXG4gICAgICAgIH1cblxuICAgICAgSXQgZG9lc24ndCB3b3JrIHdpdGggOmhvc3QtY29udGV4dCBiZWNhdXNlIGFuZ3VsYXIgc3BsaXR0aW5nIGl0IGluIHR3byBzZWxlY3RvcnMgYW5kIHJlbW92ZXNcbiAgICAgIHByZWZpeCBpbiBvbmUgb2YgdGhlIHNlbGVjdG9ycy5cbiAgICAqL1xuICAgIC5uYi10aGVtZS0jeyR0aGVtZS1uYW1lfSA6aG9zdCB7XG4gICAgICAkdGhlbWU6IHNldC1nbG9iYWwtdGhlbWUtdmFycygkdGhlbWUsICR0aGVtZS1uYW1lKTtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbmItZm9yLXRoZW1lKCRuYW1lKSB7XG4gIEBpZiAoJHRoZW1lLW5hbWUgPT0gJG5hbWUpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbmItZXhjZXB0LXRoZW1lKCRuYW1lKSB7XG4gIEBpZiAoJHRoZW1lLW5hbWUgIT0gJG5hbWUpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBUT0RPOiBhbm90aGVyIG1peGluZyBmb3IgdGhlIGFsbW9zdCBzYW1lIHRoaW5nXG5AbWl4aW4gbmItaW5zdGFsbC1yb290LWNvbXBvbmVudCgpIHtcbiAgQHdhcm4gJ2BuYi1pbnN0YWxsLXJvb3QtY29tcG9uZW50YCBpcyBkZXByaWNhdGVkLCByZXBsYWNlIHdpdGggYG5iLWluc3RhbGwtY29tcG9uZW50YCwgYXMgYGJvZHlgIGlzIHJvb3QgZWxlbWVudCBub3cnO1xuXG4gIEBpbmNsdWRlIG5iLWluc3RhbGwtY29tcG9uZW50KCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBuYi1pbnN0YWxsLWdsb2JhbCgpIHtcbiAgJHRoZW1lcy10by1pbnN0YWxsOiBnZXQtZW5hYmxlZC10aGVtZXMoKTtcblxuICBAZWFjaCAkdGhlbWUtbmFtZSwgJHRoZW1lIGluICR0aGVtZXMtdG8taW5zdGFsbCB7XG4gICAgLm5iLXRoZW1lLSN7JHRoZW1lLW5hbWV9IHtcbiAgICAgICR0aGVtZTogc2V0LWdsb2JhbC10aGVtZS12YXJzKCR0aGVtZSwgJHRoZW1lLW5hbWUpO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWt2ZW8uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICovXG5cbkBtaXhpbiBuYi1zY3JvbGxiYXJzKCRmZywgJGJnLCAkc2l6ZSwgJGJvcmRlci1yYWRpdXM6ICRzaXplIC8gMikge1xuICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgfVxuXG4gIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQ6ICRmZztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIH1cblxuICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmc7XG4gIH1cblxuICAvLyBUT0RPOiByZW1vdmVcbiAgLy8gRm9yIEludGVybmV0IEV4cGxvcmVyXG4gIHNjcm9sbGJhci1mYWNlLWNvbG9yOiAkZmc7XG4gIHNjcm9sbGJhci10cmFjay1jb2xvcjogJGJnO1xufVxuXG5AbWl4aW4gbmItcmFkaWFsLWdyYWRpZW50KCRjb2xvci0xLCAkY29sb3ItMiwgJGNvbG9yLTMpIHtcbiAgYmFja2dyb3VuZDogJGNvbG9yLTI7IC8qIE9sZCBicm93c2VycyAqL1xuICBiYWNrZ3JvdW5kOiAtbW96LXJhZGlhbC1ncmFkaWVudChib3R0b20sIGVsbGlwc2UgY292ZXIsICRjb2xvci0xIDAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb2xvci0yIDQ1JSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29sb3ItMyAxMDAlKTsgLyogRkYzLjYtMTUgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoYm90dG9tLCBlbGxpcHNlIGNvdmVyLCAkY29sb3ItMSAwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29sb3ItMiA0NSUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvbG9yLTMgMTAwJSk7IC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGJvdHRvbSwgJGNvbG9yLTEgMCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvbG9yLTIgNDUlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb2xvci0zIDEwMCUpOyAvKiBXM0MsIElFMTArLCBGRjE2KywgQ2hyb21lMjYrLCBPcGVyYTEyKywgU2FmYXJpNysgKi9cbiAgZmlsdGVyOiBwcm9naWQ6ZHhpbWFnZXRyYW5zZm9ybS5taWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nJGNvbG9yLTEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRDb2xvcnN0cj0nJGNvbG9yLTMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcmFkaWVudFR5cGU9MSk7IC8qIElFNi05IGZhbGxiYWNrIG9uIGhvcml6b250YWwgZ3JhZGllbnQgKi9cbn1cblxuQG1peGluIG5iLXJpZ2h0LWdyYWRpZW50KCRsZWZ0LWNvbG9yLCAkcmlnaHQtY29sb3IpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkbGVmdC1jb2xvciwgJHJpZ2h0LWNvbG9yKTtcbn1cblxuQG1peGluIG5iLWhlYWRpbmdzKCRmcm9tOiAxLCAkdG86IDYpIHtcbiAgQGZvciAkaSBmcm9tICRmcm9tIHRocm91Z2ggJHRvIHtcbiAgICBoI3skaX0ge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gaG92ZXItZm9jdXMtYWN0aXZlIHtcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUsXG4gICY6aG92ZXIge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBjZW50ZXItaG9yaXpvbnRhbC1hYnNvbHV0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7XG4gIGxlZnQ6IDUwJTtcbn1cblxuQG1peGluIGluc3RhbGwtdGh1bWIoKSB7XG4gICR0aHVtYi1zZWxlY3RvcnM6IChcbiAgICAnOjotd2Via2l0LXNsaWRlci10aHVtYidcbiAgICAnOjotbW96LXJhbmdlLXRodW1iJ1xuICAgICc6Oi1tcy10aHVtYidcbiAgKTtcblxuICBAZWFjaCAkc2VsZWN0b3IgaW4gJHRodW1iLXNlbGVjdG9ycyB7XG4gICAgJiN7JHNlbGVjdG9yfSB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGluc3RhbGwtdHJhY2soKSB7XG4gICR0aHVtYi1zZWxlY3RvcnM6IChcbiAgICAnOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjaydcbiAgICAnOjotbW96LXJhbmdlLXRyYWNrJ1xuICAgICc6Oi1tcy10cmFjaydcbiAgKTtcblxuICBAZWFjaCAkc2VsZWN0b3IgaW4gJHRodW1iLXNlbGVjdG9ycyB7XG4gICAgJiN7JHNlbGVjdG9yfSB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGluc3RhbGwtcGxhY2Vob2xkZXIoJGNvbG9yLCAkZm9udC1zaXplKSB7XG4gICRwbGFjZWhvbGRlci1zZWxlY3RvcnM6IChcbiAgICAnOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyJ1xuICAgICc6Oi1tb3otcGxhY2Vob2xkZXInXG4gICAgJzotbW96LXBsYWNlaG9sZGVyJ1xuICAgICc6LW1zLWlucHV0LXBsYWNlaG9sZGVyJ1xuICApO1xuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBAaW5jbHVkZSBwbGFjZWhvbGRlcigkY29sb3IsICRmb250LXNpemUpO1xuICB9XG5cbiAgQGVhY2ggJHNlbGVjdG9yIGluICRwbGFjZWhvbGRlci1zZWxlY3RvcnMge1xuICAgICYjeyRzZWxlY3Rvcn0ge1xuICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIoJGNvbG9yLCAkZm9udC1zaXplKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzI3skc2VsZWN0b3J9IHtcbiAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyLWZvY3VzKCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBwbGFjZWhvbGRlcigkY29sb3IsICRmb250LXNpemUpIHtcbiAgY29sb3I6ICRjb2xvcjtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbkBtaXhpbiBwbGFjZWhvbGRlci1mb2N1cygpIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG59XG5cbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGUuLi4pIHtcbiAgJG1heDogbGVuZ3RoKCRhbmltYXRlKTtcbiAgJGFuaW1hdGlvbnM6ICcnO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJG1heCB7XG4gICAgJGFuaW1hdGlvbnM6ICN7JGFuaW1hdGlvbnMgKyBudGgoJGFuaW1hdGUsICRpKX07XG5cbiAgICBAaWYgJGkgPCAkbWF4IHtcbiAgICAgICRhbmltYXRpb25zOiAjeyRhbmltYXRpb25zICsgJywgJ307XG4gICAgfVxuICB9XG4gIC13ZWJraXQtYW5pbWF0aW9uOiAkYW5pbWF0aW9ucztcbiAgLW1vei1hbmltYXRpb246ICAgICRhbmltYXRpb25zO1xuICAtby1hbmltYXRpb246ICAgICAgJGFuaW1hdGlvbnM7XG4gIGFuaW1hdGlvbjogICAgICAgICAkYW5pbWF0aW9ucztcbn1cblxuQG1peGluIGtleWZyYW1lcygkYW5pbWF0aW9uTmFtZSkge1xuICBALXdlYmtpdC1rZXlmcmFtZXMgI3skYW5pbWF0aW9uTmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtbW96LWtleWZyYW1lcyAjeyRhbmltYXRpb25OYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQC1vLWtleWZyYW1lcyAjeyRhbmltYXRpb25OYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGtleWZyYW1lcyAjeyRhbmltYXRpb25OYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIG1peGluIGdlbmVyYXRlcyBrZXlmYW1lcy5cbiAqIEJlY2F1c2Ugb2YgYWxsIGtleWZyYW1lcyBjYW4ndCBiZSBzY29wZWQsXG4gKiB3ZSBuZWVkIHRvIHB1dHMgdW5pcXVlIG5hbWUgaW4gZWFjaCBidG4tcHVsc2UgY2FsbC5cbiAqL1xuQG1peGluIGJ0bi1wdWxzZSgkbmFtZSwgJGNvbG9yKSB7XG4gICYuYnRuLXB1bHNlIHtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24oYnRuLSN7JG5hbWV9LXB1bHNlIDEuNXMgaW5maW5pdGUpO1xuICB9XG5cbiAgQGluY2x1ZGUga2V5ZnJhbWVzKGJ0bi0jeyRuYW1lfS1wdWxzZSkge1xuICAgIDAlIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvcGFjaXR5OiBuYi10aGVtZShidG4tZGlzYWJsZWQtb3BhY2l0eSk7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMXJlbSAwICRjb2xvcjtcbiAgICAgIG9wYWNpdHk6IDAuODtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3BhY2l0eTogbmItdGhlbWUoYnRuLWRpc2FibGVkLW9wYWNpdHkpO1xuICAgIH1cbiAgfVxufVxuXG4vKlxuXG5BY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmljYXRpb24gKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3Mtc2NvcGluZy0xLyNob3N0LXNlbGVjdG9yKVxuOmhvc3QgYW5kIDpob3N0LWNvbnRleHQgYXJlIHBzZXVkby1jbGFzc2VzLiBTbyB3ZSBhc3N1bWUgdGhleSBjb3VsZCBiZSBjb21iaW5lZCxcbmxpa2Ugb3RoZXIgcHNldWRvLWNsYXNzZXMsIGV2ZW4gc2FtZSBvbmVzLlxuRm9yIGV4YW1wbGU6ICc6bnRoLW9mLXR5cGUoMm4pOm50aC1vZi10eXBlKGV2ZW4pJy5cblxuSWRlYWwgc29sdXRpb24gd291bGQgYmUgdG8gcHJlcGVuZCBhbnkgc2VsZWN0b3Igd2l0aCA6aG9zdC1jb250ZXh0KFtkaXI9cnRsXSkuXG5UaGVuIG5lYnVsYXIgY29tcG9uZW50cyB3aWxsIGJlaGF2ZSBhcyBhbiBodG1sIGVsZW1lbnQgYW5kIHJlc3BvbmQgdG8gW2Rpcl0gYXR0cmlidXRlIG9uIGFueSBsZXZlbCxcbnNvIGRpcmVjdGlvbiBjb3VsZCBiZSBvdmVycmlkZGVuIG9uIGFueSBjb21wb25lbnQgbGV2ZWwuXG5cbkltcGxlbWVudGF0aW9uIGNvZGU6XG5cbkBtaXhpbiBuYi1ydGwoKSB7XG4gIC8vIGFkZCAjIHRvIHNjc3MgaW50ZXJwb2xhdGlvbiBzdGF0ZW1lbnQuXG4gIC8vIGl0IHdvcmtzIGluIGNvbW1lbnRzIGFuZCB3ZSBjYW4ndCB1c2UgaXQgaGVyZVxuICBAYXQtcm9vdCB7c2VsZWN0b3ItYXBwZW5kKCc6aG9zdC1jb250ZXh0KFtkaXI9cnRsXSknLCAmKX0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkFuZCB3aGVuIHdlIGNhbGwgaXQgc29tZXdoZXJlOlxuXG46aG9zdCB7XG4gIC5zb21lLWNsYXNzIHtcbiAgICBAaW5jbHVkZSBuYi1ydGwoKSB7XG4gICAgICAuLi5cbiAgICB9XG4gIH1cbn1cbjpob3N0LWNvbnRleHQoLi4uKSB7XG4gIC5zb21lLWNsYXNzIHtcbiAgICBAaW5jbHVkZSBuYi1ydGwoKSB7XG4gICAgICAuLi5cbiAgICB9XG4gIH1cbn1cblxuUmVzdWx0IHdpbGwgbG9vayBsaWtlOlxuXG46aG9zdC1jb250ZXh0KFtkaXI9cnRsXSk6aG9zdCAuc29tZS1jbGFzcyB7XG4gIC4uLlxufVxuOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pOmhvc3QtY29udGV4dCguLi4pIC5zb21lLWNsYXNzIHtcbiAgLi4uXG59XG5cbipcbiAgU2lkZSBub3RlOlxuICA6aG9zdC1jb250ZXh0KCk6aG9zdCBzZWxlY3RvciBhcmUgdmFsaWQuIGh0dHBzOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy93d3ctc3R5bGUvMjAxNUZlYi8wMzA1Lmh0bWxcblxuICA6aG9zdC1jb250ZXh0KFtkaXI9cnRsXSk6aG9zdC1jb250ZXh0KC4uLikgc2hvdWxkIG1hdGNoIGFueSBwZXJtdXRhdGlvbixcbiAgc28gb3JkZXIgaXMgbm90IGltcG9ydGFudC5cbipcblxuXG5DdXJyZW50bHksIHRoZXJlJ3JlIHR3byBwcm9ibGVtcyB3aXRoIHRoaXMgYXBwcm9hY2g6XG5cbkZpcnN0LCBpcyB0aGF0IHdlIGNhbid0IGNvbWJpbmUgOmhvc3QsIDpob3N0LWNvbnRleHQuIEFuZ3VsYXIgYnVncyAjMTQzNDksICMxOTE5OS5cbkZvciB0aGUgbW9tZW50IG9mIHdyaXRpbmcsIHRoZSBvbmx5IHBvc3NpYmxlIHdheSBpczpcbjpob3N0IHtcbiAgOmhvc3QtY29udGV4dCguLi4pIHtcbiAgICAuLi5cbiAgfVxufVxuSXQgZG9lc24ndCB3b3JrIGZvciB1cyBiZWNhdXNlIG1peGluIGNvdWxkIGJlIGNhbGxlZCBzb21ld2hlcmUgZGVlcGVyLCBsaWtlOlxuOmhvc3Qge1xuICBwIHtcbiAgICBAaW5jbHVkZSBuYi1ydGwoKSB7IC4uLiB9XG4gIH1cbn1cbldlIGFyZSBub3QgYWJsZSB0byBnbyB1cCB0byA6aG9zdCBsZXZlbCB0byBwbGFjZSBjb250ZW50IHBhc3NlZCB0byBtaXhpbi5cblxuVGhlIHNlY29uZCBwcm9ibGVtIGlzIHRoYXQgd2Ugb25seSBjYW4gYmUgc3VyZSB0aGF0IHdlIGFwcGVuZGluZyA6aG9zdC1jb250ZXh0KFtkaXI9cnRsXSkgdG8gYW5vdGhlclxuOmhvc3QvOmhvc3QtY29udGV4dCBwc2V1ZG8tY2xhc3Mgd2hlbiBjYWxsZWQgaW4gdGhlbWUgZmlsZXMgKCoudGhlbWUuc2NzcykuXG4gICpcbiAgICBTaWRlIG5vdGU6XG4gICAgQ3VycmVudGx5LCBuYi1pbnN0YWxsLWNvbXBvbmVudCB1c2VzIGFub3RoZXIgYXBwcm9hY2ggd2hlcmUgOmhvc3QgcHJlcGVuZGVkIHdpdGggdGhlIHRoZW1lIG5hbWVcbiAgICAoaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9ibG9iLzViOTYwNzg2MjRiMGE0NzYwZjJkYmNmNmZkZjBiZDYyNzkxYmU1YmIvcGFja2FnZXMvY29tcGlsZXIvc3JjL3NoYWRvd19jc3MudHMjTDQ0MSksXG4gICAgYnV0IGl0IHdhcyBtYWRlIHRvIGJlIGFibGUgdG8gdXNlIGN1cnJlbnQgcmVhbGl6YXRpb24gb2YgcnRsIGFuZCBpdCBjYW4gYmUgcmV3cml0dGVuIGJhY2sgdG9cbiAgICA6aG9zdC1jb250ZXh0KCR0aGVtZSkgb25jZSB3ZSB3aWxsIGJlIGFibGUgdG8gdXNlIG11bHRpcGxlIHNoYWRvdyBzZWxlY3RvcnMuXG4gICpcbkJ1dCB3aGVuIGl0J3MgY2FsbGVkIGluICouY29tcG9uZW50LnNjc3Mgd2UgY2FuJ3QgYmUgc3VyZSwgdGhhdCBzZWxlY3RvciBzdGFydHMgd2l0aCA6aG9zdC86aG9zdC1jb250ZXh0LFxuYmVjYXVzZSBhbmd1bGFyIGFsbG93cyBvbWl0dGluZyBwc2V1ZG8tY2xhc3NlcyBpZiB3ZSBkb24ndCBuZWVkIHRvIHN0eWxlIDpob3N0IGNvbXBvbmVudCBpdHNlbGYuXG5XZSBjYW4gYnJlYWsgc3VjaCBzZWxlY3RvcnMsIGJ5IGp1c3QgYXBwZW5kaW5nIDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKSB0byB0aGVtLlxuICAqKipcbiAgICBQb3NzaWJsZSBzb2x1dGlvblxuICAgIGNoZWNrIGlmIHdlIGluIHRoZW1lIGJ5IHNvbWUgdGhlbWUgdmFyaWFibGVzIGFuZCBpZiBzbyBhcHBlbmQsIG90aGVyd2lzZSBuZXN0IGxpa2VcbiAgICBAYXQtcm9vdCA6aG9zdC1jb250ZXh0KFtkaXI9cnRsXSkge1xuICAgICAgLy8gYWRkICMgdG8gc2NzcyBpbnRlcnBvbGF0aW9uIHN0YXRlbWVudC5cbiAgICAgIC8vIGl0IHdvcmtzIGluIGNvbW1lbnRzIGFuZCB3ZSBjYW4ndCB1c2UgaXQgaGVyZVxuICAgICAgeyZ9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIFdoYXQgaWYgOmhvc3Qgc3BlY2lmaWVkPyBDYW4gd2UgYWRkIHNwYWNlIGluIDpob3N0LWNvbnRleHQoLi4uKSA6aG9zdD9cbiAgICBPciBtYXliZSBhZGQgOmhvc3Qgc2VsZWN0b3IgYW55d2F5PyBJZiBtdWx0aXBsZSA6aG9zdCBzZWxlY3RvcnMgYXJlIGFsbG93ZWRcbiAgKioqXG5cblxuUHJvYmxlbXMgd2l0aCB0aGUgY3VycmVudCBhcHByb2FjaC5cblxuMS4gRGlyZWN0aW9uIGNhbiBiZSBhcHBsaWVkIG9ubHkgb24gZG9jdW1lbnQgbGV2ZWwsIGJlY2F1c2UgbWl4aW4gcHJlcGVuZHMgdGhlbWUgY2xhc3MsXG53aGljaCBwbGFjZWQgb24gdGhlIGJvZHkuXG4yLiAqLmNvbXBvbmVudC5zY3NzIHN0eWxlcyBzaG91bGQgYmUgaW4gOmhvc3Qgc2VsZWN0b3IuIE90aGVyd2lzZSBhbmd1bGFyIHdpbGwgYWRkIGhvc3RcbmF0dHJpYnV0ZSB0byBbZGlyPXJ0bF0gYXR0cmlidXRlIGFzIHdlbGwuXG5cblxuR2VuZXJhbCBwcm9ibGVtcy5cblxuTHRyIGlzIGRlZmF1bHQgZG9jdW1lbnQgZGlyZWN0aW9uLCBidXQgZm9yIHByb3BlciB3b3JrIG9mIG5iLWx0ciAobWVhbnMgbHRyIG9ubHkpLFxuW2Rpcj1sdHJdIHNob3VsZCBiZSBzcGVjaWZpZWQgYXQgbGVhc3Qgc29tZXdoZXJlLiAnOm5vdChbZGlyPXJ0bF0nIG5vdCBhcHBsaWNhYmxlIGhlcmUsXG5iZWNhdXNlIGl0J3Mgc2F0aXNmeSBhbnkgcGFyZW50LCB0aGF0IGRvbid0IGhhdmUgW2Rpcj1ydGxdIGF0dHJpYnV0ZS5cblByZXZpb3VzIGFwcHJvYWNoIHdhcyB0byB1c2Ugc2luZ2xlIHJ0bCBtaXhpbiBhbmQgcmVzZXQgbHRyIHByb3BlcnRpZXMgdG8gaW5pdGlhbCB2YWx1ZS5cbkJ1dCBzb21ldGltZXMgaXQncyBoYXJkIHRvIGZpbmQsIHdoYXQgdGhlIHByZXZpb3VzIHZhbHVlIHNob3VsZCBiZS4gQW5kIHN1Y2ggbWl4aW4gY2FsbCBsb29rcyB0b28gdmVyYm9zZS5cbiovXG5cbkBtaXhpbiBfcHJlcGVuZC13aXRoLXNlbGVjdG9yKCRzZWxlY3RvciwgJHByb3A6IG51bGwsICR2YWx1ZTogbnVsbCkge1xuICAjeyRzZWxlY3Rvcn0gJiB7XG4gICAgQGlmICRwcm9wICE9IG51bGwge1xuICAgICAgI3skcHJvcH06ICR2YWx1ZTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbmItbHRyKCRwcm9wOiBudWxsLCAkdmFsdWU6IG51bGwpIHtcbiAgQGluY2x1ZGUgX3ByZXBlbmQtd2l0aC1zZWxlY3RvcignW2Rpcj1sdHJdJywgJHByb3AsICR2YWx1ZSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBuYi1ydGwoJHByb3A6IG51bGwsICR2YWx1ZTogbnVsbCkge1xuICBAaW5jbHVkZSBfcHJlcGVuZC13aXRoLXNlbGVjdG9yKCdbZGlyPXJ0bF0nLCAkcHJvcCwgJHZhbHVlKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH07XG59XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWt2ZW8uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICovXG5cbi8vLyBTbGlnaHRseSBsaWdodGVuIGEgY29sb3Jcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIGNvbG9yIHRvIHRpbnRcbi8vLyBAcGFyYW0ge051bWJlcn0gJHBlcmNlbnRhZ2UgLSBwZXJjZW50YWdlIG9mIGAkY29sb3JgIGluIHJldHVybmVkIGNvbG9yXG4vLy8gQHJldHVybiB7Q29sb3J9XG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50YWdlKSB7XG4gIEByZXR1cm4gbWl4KHdoaXRlLCAkY29sb3IsICRwZXJjZW50YWdlKTtcbn1cblxuLy8vIFNsaWdodGx5IGRhcmtlbiBhIGNvbG9yXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBjb2xvciB0byBzaGFkZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGVyY2VudGFnZSAtIHBlcmNlbnRhZ2Ugb2YgYCRjb2xvcmAgaW4gcmV0dXJuZWQgY29sb3Jcbi8vLyBAcmV0dXJuIHtDb2xvcn1cbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRwZXJjZW50YWdlKSB7XG4gIEByZXR1cm4gbWl4KGJsYWNrLCAkY29sb3IsICRwZXJjZW50YWdlKTtcbn1cblxuQGZ1bmN0aW9uIG1hcC1zZXQoJG1hcCwgJGtleSwgJHZhbHVlOiBudWxsKSB7XG4gICRuZXc6ICgka2V5OiAkdmFsdWUpO1xuICBAcmV0dXJuIG1hcC1tZXJnZSgkbWFwLCAkbmV3KTtcbn1cbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cblxuQGltcG9ydCAnLi4vY29yZS9mdW5jdGlvbnMnO1xuQGltcG9ydCAnLi4vY29yZS9taXhpbnMnO1xuXG4kdGhlbWU6IChcbiAgZm9udC1tYWluOiB1bnF1b3RlKCdcIlNlZ29lIFVJXCIsIFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgc2Fucy1zZXJpZicpLFxuICBmb250LXNlY29uZGFyeTogZm9udC1tYWluLFxuXG4gIGZvbnQtd2VpZ2h0LXRoaW46IDIwMCxcbiAgZm9udC13ZWlnaHQtbGlnaHQ6IDMwMCxcbiAgZm9udC13ZWlnaHQtbm9ybWFsOiA0MDAsXG4gIGZvbnQtd2VpZ2h0LWJvbGRlcjogNTAwLFxuICBmb250LXdlaWdodC1ib2xkOiA2MDAsXG4gIGZvbnQtd2VpZ2h0LXVsdHJhLWJvbGQ6IDgwMCxcblxuICAvLyBUT0RPOiB1c2UgaXQgYXMgYSBkZWZhdWx0IGZvbnQtc2l6ZVxuICBiYXNlLWZvbnQtc2l6ZTogMTZweCxcblxuICBmb250LXNpemUteGxnOiAxLjI1cmVtLFxuICBmb250LXNpemUtbGc6IDEuMTI1cmVtLFxuICBmb250LXNpemU6IDFyZW0sXG4gIGZvbnQtc2l6ZS1zbTogMC44NzVyZW0sXG4gIGZvbnQtc2l6ZS14czogMC43NXJlbSxcblxuICByYWRpdXM6IDAuMzc1cmVtLFxuICBwYWRkaW5nOiAxLjI1cmVtLFxuICBtYXJnaW46IDEuNXJlbSxcbiAgbGluZS1oZWlnaHQ6IDEuMjUsXG5cbiAgY29sb3ItYmc6ICNmZmZmZmYsXG4gIGNvbG9yLWJnLWFjdGl2ZTogI2U5ZWRmMixcbiAgY29sb3ItZmc6ICNhNGFiYjMsXG4gIGNvbG9yLWZnLWhlYWRpbmc6ICMyYTJhMmEsXG4gIGNvbG9yLWZnLXRleHQ6ICM0YjRiNGIsXG4gIGNvbG9yLWZnLWhpZ2hsaWdodDogIzQwZGM3ZSxcblxuICBzZXBhcmF0b3I6ICNlYmVlZjIsXG5cbiAgY29sb3ItZ3JheTogcmdiYSg4MSwgMTEzLCAxNjUsIDAuMTUpLFxuICBjb2xvci1uZXV0cmFsOiB0cmFuc3BhcmVudCxcbiAgY29sb3Itd2hpdGU6ICNmZmZmZmYsXG4gIGNvbG9yLWRpc2FibGVkOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCksXG5cbiAgY29sb3ItcHJpbWFyeTogIzhhN2ZmZixcbiAgY29sb3Itc3VjY2VzczogIzQwZGM3ZSxcbiAgY29sb3ItaW5mbzogIzRjYTZmZixcbiAgY29sb3Itd2FybmluZzogI2ZmYTEwMCxcbiAgY29sb3ItZGFuZ2VyOiAjZmY0YzZhLFxuXG4gIC8vIFRPRE86IG1vdmUgdG8gY29uc3RhbnRzXG4gIHNvY2lhbC1jb2xvci1mYWNlYm9vazogIzNiNTk5OCxcbiAgc29jaWFsLWNvbG9yLXR3aXR0ZXI6ICM1NWFjZWUsXG4gIHNvY2lhbC1jb2xvci1nb29nbGU6ICNkZDRiMzksXG4gIHNvY2lhbC1jb2xvci1saW5rZWRpbjogIzAxNzdiNSxcbiAgc29jaWFsLWNvbG9yLWdpdGh1YjogIzZiNmI2YixcbiAgc29jaWFsLWNvbG9yLXN0YWNrb3ZlcmZsb3c6ICMyZjk2ZTgsXG4gIHNvY2lhbC1jb2xvci1kcmliYmxlOiAjZjI2Nzk4LFxuICBzb2NpYWwtY29sb3ItYmVoYW5jZTogIzAwOTNmYSxcblxuICBib3JkZXItY29sb3I6IGNvbG9yLWdyYXksXG4gIHNoYWRvdzogMCAycHggMTJweCAwICNkZmUzZWIsXG5cbiAgbGluay1jb2xvcjogIzNkY2M2ZCxcbiAgbGluay1jb2xvci1ob3ZlcjogIzJlZTU2YixcbiAgbGluay1jb2xvci12aXNpdGVkOiBsaW5rLWNvbG9yLFxuXG4gIHNjcm9sbGJhci1mZzogI2RhZGFkYSxcbiAgc2Nyb2xsYmFyLWJnOiAjZjJmMmYyLFxuICBzY3JvbGxiYXItd2lkdGg6IDVweCxcbiAgc2Nyb2xsYmFyLXRodW1iLXJhZGl1czogMi41cHgsXG5cbiAgcmFkaWFsLWdyYWRpZW50OiBub25lLFxuICBsaW5lYXItZ3JhZGllbnQ6IG5vbmUsXG5cbiAgY2FyZC1mb250LXNpemU6IGZvbnQtc2l6ZSxcbiAgY2FyZC1saW5lLWhlaWdodDogbGluZS1oZWlnaHQsXG4gIGNhcmQtZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LW5vcm1hbCxcbiAgY2FyZC1mZzogY29sb3ItZmcsIC8vIFRPRE86IG5vdCB1c2VkXG4gIGNhcmQtZmctdGV4dDogY29sb3ItZmctdGV4dCxcbiAgY2FyZC1mZy1oZWFkaW5nOiBjb2xvci1mZy1oZWFkaW5nLCAvLyBUT0RPOiBub3QgdXNlZFxuICBjYXJkLWJnOiBjb2xvci1iZyxcbiAgY2FyZC1oZWlnaHQteHhzbWFsbDogOTZweCxcbiAgY2FyZC1oZWlnaHQteHNtYWxsOiAyMTZweCxcbiAgY2FyZC1oZWlnaHQtc21hbGw6IDMzNnB4LFxuICBjYXJkLWhlaWdodC1tZWRpdW06IDQ1NnB4LFxuICBjYXJkLWhlaWdodC1sYXJnZTogNTc2cHgsXG4gIGNhcmQtaGVpZ2h0LXhsYXJnZTogNjk2cHgsXG4gIGNhcmQtaGVpZ2h0LXh4bGFyZ2U6IDgxNnB4LFxuICBjYXJkLXNoYWRvdzogc2hhZG93LFxuICBjYXJkLWJvcmRlci13aWR0aDogMCxcbiAgY2FyZC1ib3JkZXItdHlwZTogc29saWQsXG4gIGNhcmQtYm9yZGVyLWNvbG9yOiBjb2xvci1iZyxcbiAgY2FyZC1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG4gIGNhcmQtcGFkZGluZzogcGFkZGluZyxcbiAgY2FyZC1tYXJnaW46IG1hcmdpbixcbiAgY2FyZC1oZWFkZXItZm9udC1mYW1pbHk6IGZvbnQtc2Vjb25kYXJ5LFxuICBjYXJkLWhlYWRlci1mb250LXNpemU6IGZvbnQtc2l6ZS1sZyxcbiAgY2FyZC1oZWFkZXItZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LWJvbGQsXG4gIGNhcmQtc2VwYXJhdG9yOiBzZXBhcmF0b3IsXG4gIGNhcmQtaGVhZGVyLWZnOiBjb2xvci1mZywgLy8gVE9ETzogbm90IHVzZWRcbiAgY2FyZC1oZWFkZXItZmctaGVhZGluZzogY29sb3ItZmctaGVhZGluZyxcbiAgY2FyZC1oZWFkZXItYWN0aXZlLWJnOiBjb2xvci1mZyxcbiAgY2FyZC1oZWFkZXItYWN0aXZlLWZnOiBjb2xvci1iZyxcbiAgY2FyZC1oZWFkZXItZGlzYWJsZWQtYmc6IGNvbG9yLWRpc2FibGVkLFxuICBjYXJkLWhlYWRlci1wcmltYXJ5LWJnOiBjb2xvci1wcmltYXJ5LFxuICBjYXJkLWhlYWRlci1pbmZvLWJnOiBjb2xvci1pbmZvLFxuICBjYXJkLWhlYWRlci1zdWNjZXNzLWJnOiBjb2xvci1zdWNjZXNzLFxuICBjYXJkLWhlYWRlci13YXJuaW5nLWJnOiBjb2xvci13YXJuaW5nLFxuICBjYXJkLWhlYWRlci1kYW5nZXItYmc6IGNvbG9yLWRhbmdlcixcbiAgY2FyZC1oZWFkZXItYm9yZGVyLXdpZHRoOiAxcHgsXG4gIGNhcmQtaGVhZGVyLWJvcmRlci10eXBlOiBzb2xpZCxcbiAgY2FyZC1oZWFkZXItYm9yZGVyLWNvbG9yOiBjYXJkLXNlcGFyYXRvcixcblxuICBoZWFkZXItZm9udC1mYW1pbHk6IGZvbnQtc2Vjb25kYXJ5LFxuICBoZWFkZXItZm9udC1zaXplOiBmb250LXNpemUsXG4gIGhlYWRlci1saW5lLWhlaWdodDogbGluZS1oZWlnaHQsXG4gIGhlYWRlci1mZzogY29sb3ItZmctaGVhZGluZyxcbiAgaGVhZGVyLWJnOiBjb2xvci1iZyxcbiAgaGVhZGVyLWhlaWdodDogNC43NXJlbSxcbiAgaGVhZGVyLXBhZGRpbmc6IDEuMjVyZW0sXG4gIGhlYWRlci1zaGFkb3c6IHNoYWRvdyxcblxuICBmb290ZXItaGVpZ2h0OiA0LjcyNXJlbSxcbiAgZm9vdGVyLXBhZGRpbmc6IDEuMjVyZW0sXG4gIGZvb3Rlci1mZzogY29sb3ItZmctaGVhZGluZyxcbiAgZm9vdGVyLWZnLWhpZ2hsaWdodDogY29sb3ItZmctaGVhZGluZyxcbiAgZm9vdGVyLWJnOiBjb2xvci1iZyxcbiAgZm9vdGVyLXNlcGFyYXRvcjogc2VwYXJhdG9yLFxuICBmb290ZXItc2hhZG93OiBzaGFkb3csXG5cbiAgbGF5b3V0LWZvbnQtZmFtaWx5OiBmb250LW1haW4sXG4gIGxheW91dC1mb250LXNpemU6IGZvbnQtc2l6ZSxcbiAgbGF5b3V0LWxpbmUtaGVpZ2h0OiBsaW5lLWhlaWdodCxcbiAgbGF5b3V0LWZnOiBjb2xvci1mZyxcbiAgbGF5b3V0LWJnOiAjZWJlZmY1LFxuICBsYXlvdXQtbWluLWhlaWdodDogMTAwdmgsXG4gIGxheW91dC1jb250ZW50LXdpZHRoOiA5MDBweCxcbiAgbGF5b3V0LXdpbmRvdy1tb2RlLW1pbi13aWR0aDogMzAwcHgsXG4gIGxheW91dC13aW5kb3ctbW9kZS1tYXgtd2lkdGg6IDE5MjBweCxcbiAgbGF5b3V0LXdpbmRvdy1tb2RlLWJnOiBsYXlvdXQtYmcsXG4gIGxheW91dC13aW5kb3ctbW9kZS1wYWRkaW5nLXRvcDogNC43NXJlbSxcbiAgbGF5b3V0LXdpbmRvdy1zaGFkb3c6IHNoYWRvdyxcbiAgbGF5b3V0LXBhZGRpbmc6IDIuMjVyZW0gMi4yNXJlbSAwLjc1cmVtLFxuICBsYXlvdXQtbWVkaXVtLXBhZGRpbmc6IDEuNXJlbSAxLjVyZW0gMC41cmVtLFxuICBsYXlvdXQtc21hbGwtcGFkZGluZzogMXJlbSAxcmVtIDAsXG5cbiAgc2lkZWJhci1mb250LXNpemU6IGZvbnQtc2l6ZSxcbiAgc2lkZWJhci1saW5lLWhlaWdodDogbGluZS1oZWlnaHQsXG4gIHNpZGViYXItZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIHNpZGViYXItYmc6IGNvbG9yLWJnLFxuICBzaWRlYmFyLWhlaWdodDogMTAwdmgsXG4gIHNpZGViYXItd2lkdGg6IDE2cmVtLFxuICBzaWRlYmFyLXdpZHRoLWNvbXBhY3Q6IDMuNXJlbSxcbiAgc2lkZWJhci1wYWRkaW5nOiBwYWRkaW5nLFxuICBzaWRlYmFyLWhlYWRlci1oZWlnaHQ6IDMuNXJlbSxcbiAgc2lkZWJhci1mb290ZXItaGVpZ2h0OiAzLjVyZW0sXG4gIHNpZGViYXItc2hhZG93OiBzaGFkb3csXG5cbiAgbWVudS1mb250LWZhbWlseTogZm9udC1zZWNvbmRhcnksXG4gIG1lbnUtZm9udC1zaXplOiBmb250LXNpemUsXG4gIG1lbnUtZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LWJvbGRlcixcbiAgbWVudS1mZzogY29sb3ItZmctdGV4dCxcbiAgbWVudS1iZzogY29sb3ItYmcsXG4gIG1lbnUtYWN0aXZlLWZnOiBjb2xvci1mZy1oZWFkaW5nLFxuICBtZW51LWFjdGl2ZS1iZzogY29sb3ItYmcsXG4gIG1lbnUtYWN0aXZlLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ib2xkLFxuXG4gIG1lbnUtc3VibWVudS1iZzogY29sb3ItYmcsXG4gIG1lbnUtc3VibWVudS1mZzogY29sb3ItZmctdGV4dCxcbiAgbWVudS1zdWJtZW51LWFjdGl2ZS1mZzogY29sb3ItZmctaGVhZGluZyxcbiAgbWVudS1zdWJtZW51LWFjdGl2ZS1iZzogY29sb3ItYmcsXG4gIG1lbnUtc3VibWVudS1hY3RpdmUtYm9yZGVyLWNvbG9yOiBjb2xvci1mZy1oaWdobGlnaHQsXG4gIG1lbnUtc3VibWVudS1hY3RpdmUtc2hhZG93OiBub25lLFxuICBtZW51LXN1Ym1lbnUtaG92ZXItZmc6IG1lbnUtc3VibWVudS1hY3RpdmUtZmcsXG4gIG1lbnUtc3VibWVudS1ob3Zlci1iZzogbWVudS1zdWJtZW51LWJnLFxuICBtZW51LXN1Ym1lbnUtaXRlbS1ib3JkZXItd2lkdGg6IDAuMTI1cmVtLFxuICBtZW51LXN1Ym1lbnUtaXRlbS1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG4gIG1lbnUtc3VibWVudS1pdGVtLXBhZGRpbmc6IDAuNXJlbSAxcmVtLFxuICBtZW51LXN1Ym1lbnUtaXRlbS1jb250YWluZXItcGFkZGluZzogMCAxLjI1cmVtLFxuICBtZW51LXN1Ym1lbnUtcGFkZGluZzogMC41cmVtLFxuXG4gIG1lbnUtZ3JvdXAtZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LWJvbGRlcixcbiAgbWVudS1ncm91cC1mb250LXNpemU6IDAuODc1cmVtLFxuICBtZW51LWdyb3VwLWZnOiBjb2xvci1mZyxcbiAgbWVudS1ncm91cC1wYWRkaW5nOiAxcmVtIDEuMjVyZW0sXG4gIG1lbnUtaXRlbS1wYWRkaW5nOiAwLjY3NXJlbSAwLjc1cmVtLFxuICBtZW51LWl0ZW0tc2VwYXJhdG9yOiBzZXBhcmF0b3IsXG4gIG1lbnUtaWNvbi1mb250LXNpemU6IDIuNXJlbSxcbiAgbWVudS1pY29uLW1hcmdpbjogMCAwLjI1cmVtIDAsXG4gIG1lbnUtaWNvbi1jb2xvcjogY29sb3ItZmcsXG4gIG1lbnUtaWNvbi1hY3RpdmUtY29sb3I6IGNvbG9yLWZnLWhlYWRpbmcsXG5cbiAgdGFicy1mb250LWZhbWlseTogZm9udC1zZWNvbmRhcnksXG4gIHRhYnMtZm9udC1zaXplOiBmb250LXNpemUtbGcsXG4gIHRhYnMtY29udGVudC1mb250LWZhbWlseTogZm9udC1tYWluLFxuICB0YWJzLWNvbnRlbnQtZm9udC1zaXplOiBmb250LXNpemUsXG4gIHRhYnMtYWN0aXZlLWJnOiB0cmFuc3BhcmVudCxcbiAgdGFicy1hY3RpdmUtZm9udC13ZWlnaHQ6IGNhcmQtaGVhZGVyLWZvbnQtd2VpZ2h0LFxuICB0YWJzLXBhZGRpbmc6IHBhZGRpbmcsXG4gIHRhYnMtY29udGVudC1wYWRkaW5nOiAwLFxuICB0YWJzLWhlYWRlci1iZzogdHJhbnNwYXJlbnQsXG4gIHRhYnMtc2VwYXJhdG9yOiBzZXBhcmF0b3IsXG4gIHRhYnMtZmc6IGNvbG9yLWZnLFxuICB0YWJzLWZnLXRleHQ6IGNvbG9yLWZnLXRleHQsXG4gIHRhYnMtZmctaGVhZGluZzogY29sb3ItZmctaGVhZGluZyxcbiAgdGFicy1iZzogdHJhbnNwYXJlbnQsXG4gIHRhYnMtc2VsZWN0ZWQ6IGNvbG9yLXN1Y2Nlc3MsXG4gIHRhYnMtc2VsZWN0ZWQtc2Vjb25kLWNvbG9yOiBjb2xvci1zdWNjZXNzLFxuICB0YWJzLXNlbGVjdGVkLWRlZ3JlZXM6IDAsXG4gIHRhYnMtaWNvbi1vbmx5LW1heC13aWR0aDogNTc2cHgsXG5cbiAgcm91dGUtdGFicy1mb250LWZhbWlseTogZm9udC1zZWNvbmRhcnksXG4gIHJvdXRlLXRhYnMtZm9udC1zaXplOiBmb250LXNpemUtbGcsXG4gIHJvdXRlLXRhYnMtYWN0aXZlLWJnOiB0cmFuc3BhcmVudCxcbiAgcm91dGUtdGFicy1hY3RpdmUtZm9udC13ZWlnaHQ6IGNhcmQtaGVhZGVyLWZvbnQtd2VpZ2h0LFxuICByb3V0ZS10YWJzLXBhZGRpbmc6IHBhZGRpbmcsXG4gIHJvdXRlLXRhYnMtaGVhZGVyLWJnOiB0cmFuc3BhcmVudCxcbiAgcm91dGUtdGFicy1zZXBhcmF0b3I6IHNlcGFyYXRvcixcbiAgcm91dGUtdGFicy1mZzogY29sb3ItZmcsXG4gIHJvdXRlLXRhYnMtZmctaGVhZGluZzogY29sb3ItZmctaGVhZGluZyxcbiAgcm91dGUtdGFicy1iZzogdHJhbnNwYXJlbnQsXG4gIHJvdXRlLXRhYnMtc2VsZWN0ZWQ6IGNvbG9yLXN1Y2Nlc3MsXG4gIHJvdXRlLXRhYnMtaWNvbi1vbmx5LW1heC13aWR0aDogNTc2cHgsXG5cbiAgdXNlci1mb250LXNpemU6IGZvbnQtc2l6ZSxcbiAgdXNlci1saW5lLWhlaWdodDogbGluZS1oZWlnaHQsXG4gIHVzZXItYmc6IGNvbG9yLWJnLFxuICB1c2VyLWZnOiBjb2xvci1mZyxcbiAgdXNlci1mZy1oaWdobGlnaHQ6ICNiY2MzY2MsXG4gIHVzZXItZm9udC1mYW1pbHktc2Vjb25kYXJ5OiBmb250LXNlY29uZGFyeSxcbiAgdXNlci1zaXplLXNtYWxsOiAxLjVyZW0sXG4gIHVzZXItc2l6ZS1tZWRpdW06IDIuNXJlbSxcbiAgdXNlci1zaXplLWxhcmdlOiAzLjI1cmVtLFxuICB1c2VyLXNpemUteGxhcmdlOiA0cmVtLFxuXG4gIHBvcG92ZXItZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIHBvcG92ZXItYmc6IGNvbG9yLWJnLFxuICBwb3BvdmVyLWJvcmRlcjogY29sb3Itc3VjY2VzcyxcbiAgcG9wb3Zlci1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG4gIHBvcG92ZXItc2hhZG93OiBub25lLFxuICBwb3BvdmVyLWFycm93LXNpemU6IDExcHgsXG5cbiAgY29udGV4dC1tZW51LWZnOiBjb2xvci1mZy1oZWFkaW5nLFxuICBjb250ZXh0LW1lbnUtYmc6IGNvbG9yLWJnLFxuICBjb250ZXh0LW1lbnUtYWN0aXZlLWZnOiBjb2xvci13aGl0ZSxcbiAgY29udGV4dC1tZW51LWFjdGl2ZS1iZzogY29sb3Itc3VjY2VzcyxcbiAgY29udGV4dC1tZW51LWJvcmRlcjogY29sb3Itc3VjY2VzcyxcbiAgY29udGV4dC1tZW51LWJvcmRlci1yYWRpdXM6IHJhZGl1cyxcbiAgY29udGV4dC1tZW51LXNoYWRvdzogbm9uZSxcbiAgY29udGV4dC1tZW51LWFycm93LXNpemU6IDExcHgsXG5cbiAgYWN0aW9ucy1mb250LXNpemU6IGZvbnQtc2l6ZSxcbiAgYWN0aW9ucy1mb250LWZhbWlseTogZm9udC1zZWNvbmRhcnksXG4gIGFjdGlvbnMtbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0LFxuICBhY3Rpb25zLWZnOiBjb2xvci1mZyxcbiAgYWN0aW9ucy1iZzogY29sb3ItYmcsXG4gIGFjdGlvbnMtc2VwYXJhdG9yOiBzZXBhcmF0b3IsXG4gIGFjdGlvbnMtcGFkZGluZzogcGFkZGluZyxcbiAgYWN0aW9ucy1zaXplLXNtYWxsOiAxLjVyZW0sXG4gIGFjdGlvbnMtc2l6ZS1tZWRpdW06IDIuMjVyZW0sXG4gIGFjdGlvbnMtc2l6ZS1sYXJnZTogMy41cmVtLFxuXG4gIHNlYXJjaC1idG4tb3Blbi1mZzogY29sb3ItZmcsXG4gIHNlYXJjaC1idG4tY2xvc2UtZmc6XHRjb2xvci1mZyxcbiAgc2VhcmNoLWJnOiBsYXlvdXQtYmcsXG4gIHNlYXJjaC1iZy1zZWNvbmRhcnk6IGNvbG9yLWZnLFxuICBzZWFyY2gtdGV4dDogY29sb3ItZmctaGVhZGluZyxcbiAgc2VhcmNoLWluZm86IGNvbG9yLWZnLFxuICBzZWFyY2gtZGFzaDogY29sb3ItZmcsXG4gIHNlYXJjaC1wbGFjZWhvbGRlcjogY29sb3ItZmcsXG5cbiAgc21hcnQtdGFibGUtaGVhZGVyLWZvbnQtZmFtaWx5OiBmb250LXNlY29uZGFyeSxcbiAgc21hcnQtdGFibGUtaGVhZGVyLWZvbnQtc2l6ZTogZm9udC1zaXplLFxuICBzbWFydC10YWJsZS1oZWFkZXItZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LWJvbGQsXG4gIHNtYXJ0LXRhYmxlLWhlYWRlci1saW5lLWhlaWdodDogbGluZS1oZWlnaHQsXG4gIHNtYXJ0LXRhYmxlLWhlYWRlci1mZzogY29sb3ItZmctaGVhZGluZyxcbiAgc21hcnQtdGFibGUtaGVhZGVyLWJnOiBjb2xvci1iZyxcblxuICBzbWFydC10YWJsZS1mb250LWZhbWlseTogZm9udC1tYWluLFxuICBzbWFydC10YWJsZS1mb250LXNpemU6IGZvbnQtc2l6ZSxcbiAgc21hcnQtdGFibGUtZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LW5vcm1hbCxcbiAgc21hcnQtdGFibGUtbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0LFxuICBzbWFydC10YWJsZS1mZzogY29sb3ItZmctaGVhZGluZyxcbiAgc21hcnQtdGFibGUtYmc6IGNvbG9yLWJnLFxuXG4gIHNtYXJ0LXRhYmxlLWJnLWV2ZW46ICNmNWY3ZmMsXG4gIHNtYXJ0LXRhYmxlLWZnLXNlY29uZGFyeTogY29sb3ItZmcsXG4gIHNtYXJ0LXRhYmxlLWJnLWFjdGl2ZTogI2U2ZjNmZixcbiAgc21hcnQtdGFibGUtcGFkZGluZzogMC44NzVyZW0gMS4yNXJlbSxcbiAgc21hcnQtdGFibGUtZmlsdGVyLXBhZGRpbmc6IDAuMzc1cmVtIDAuNXJlbSxcbiAgc21hcnQtdGFibGUtc2VwYXJhdG9yOiBzZXBhcmF0b3IsXG4gIHNtYXJ0LXRhYmxlLWJvcmRlci1yYWRpdXM6IHJhZGl1cyxcblxuICBzbWFydC10YWJsZS1wYWdpbmctYm9yZGVyLWNvbG9yOiBzZXBhcmF0b3IsXG4gIHNtYXJ0LXRhYmxlLXBhZ2luZy1ib3JkZXItd2lkdGg6IDFweCxcbiAgc21hcnQtdGFibGUtcGFnaW5nLWZnLWFjdGl2ZTogI2ZmZmZmZixcbiAgc21hcnQtdGFibGUtcGFnaW5nLWJnLWFjdGl2ZTogY29sb3Itc3VjY2VzcyxcbiAgc21hcnQtdGFibGUtcGFnaW5nLWhvdmVyOiByZ2JhKDAsIDAsIDAsIDAuMDUpLFxuXG4gIHRvYXN0ci1iZzogY29sb3ItYmcsXG4gIHRvYXN0ci1wYWRkaW5nOiAxLjEyNXJlbSxcbiAgdG9hc3RyLWZnOiBjb2xvci1mZy10ZXh0LFxuICB0b2FzdHItYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCxcbiAgdG9hc3RyLWJvcmRlci1yYWRpdXM6IHJhZGl1cyxcbiAgdG9hc3RyLWJvcmRlci1jb2xvcjogI2JjYzNjYyxcbiAgdG9hc3RyLWljb24tcmFkaXVzOiAwLjI1cmVtLFxuICB0b2FzdHItc2hhZG93OiBzaGFkb3csXG5cbiAgYnRuLWZnOiBjb2xvci13aGl0ZSxcbiAgYnRuLWZvbnQtZmFtaWx5OiBmb250LXNlY29uZGFyeSxcbiAgYnRuLWxpbmUtaGVpZ2h0OiBsaW5lLWhlaWdodCxcbiAgYnRuLWRpc2FibGVkLW9wYWNpdHk6IDAuMyxcbiAgYnRuLWN1cnNvcjogZGVmYXVsdCxcblxuICBidG4tcHJpbWFyeS1iZzogY29sb3ItcHJpbWFyeSxcbiAgYnRuLXNlY29uZGFyeS1iZzogdHJhbnNwYXJlbnQsXG4gIGJ0bi1pbmZvLWJnOiBjb2xvci1pbmZvLFxuICBidG4tc3VjY2Vzcy1iZzogY29sb3Itc3VjY2VzcyxcbiAgYnRuLXdhcm5pbmctYmc6IGNvbG9yLXdhcm5pbmcsXG4gIGJ0bi1kYW5nZXItYmc6IGNvbG9yLWRhbmdlcixcblxuICBidG4tc2Vjb25kYXJ5LWJvcmRlcjogI2RhZGZlNixcbiAgYnRuLXNlY29uZGFyeS1ib3JkZXItd2lkdGg6IDJweCxcblxuICBidG4tcGFkZGluZy15LWxnOiAwLjg3NXJlbSxcbiAgYnRuLXBhZGRpbmcteC1sZzogMS43NXJlbSxcbiAgYnRuLWZvbnQtc2l6ZS1sZzogZm9udC1zaXplLWxnLFxuXG4gIC8vIGRlZmF1bHQgc2l6ZVxuICBidG4tcGFkZGluZy15LW1kOiAwLjc1cmVtLFxuICBidG4tcGFkZGluZy14LW1kOiAxLjVyZW0sXG4gIGJ0bi1mb250LXNpemUtbWQ6IDFyZW0sXG5cbiAgYnRuLXBhZGRpbmcteS1zbTogMC42MjVyZW0sXG4gIGJ0bi1wYWRkaW5nLXgtc206IDEuNXJlbSxcbiAgYnRuLWZvbnQtc2l6ZS1zbTogMC44NzVyZW0sXG5cbiAgYnRuLXBhZGRpbmcteS14czogMC41cmVtLFxuICBidG4tcGFkZGluZy14LXhzOiAxLjI1cmVtLFxuICBidG4tZm9udC1zaXplLXhzOiAwLjc1cmVtLFxuXG4gIGJ0bi1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG4gIGJ0bi1yZWN0YW5nbGUtYm9yZGVyLXJhZGl1czogMC4yNXJlbSxcbiAgYnRuLXNlbWktcm91bmQtYm9yZGVyLXJhZGl1czogMC43NXJlbSxcbiAgYnRuLXJvdW5kLWJvcmRlci1yYWRpdXM6IDEuNXJlbSxcblxuICBidG4taGVyby1zaGFkb3c6IG5vbmUsXG4gIGJ0bi1oZXJvLXRleHQtc2hhZG93OiBub25lLFxuICBidG4taGVyby1iZXZlbC1zaXplOiAwIDAgMCAwLFxuICBidG4taGVyby1nbG93LXNpemU6IDAgMCAwIDAsXG4gIGJ0bi1oZXJvLXByaW1hcnktZ2xvdy1zaXplOiBidG4taGVyby1nbG93LXNpemUsXG4gIGJ0bi1oZXJvLXN1Y2Nlc3MtZ2xvdy1zaXplOiBidG4taGVyby1nbG93LXNpemUsXG4gIGJ0bi1oZXJvLXdhcm5pbmctZ2xvdy1zaXplOiBidG4taGVyby1nbG93LXNpemUsXG4gIGJ0bi1oZXJvLWluZm8tZ2xvdy1zaXplOiBidG4taGVyby1nbG93LXNpemUsXG4gIGJ0bi1oZXJvLWRhbmdlci1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLWhlcm8tc2Vjb25kYXJ5LWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby1kZWdyZWU6IDIwZGVnLFxuICBidG4taGVyby1wcmltYXJ5LWRlZ3JlZTogYnRuLWhlcm8tZGVncmVlLFxuICBidG4taGVyby1zdWNjZXNzLWRlZ3JlZTogYnRuLWhlcm8tZGVncmVlLFxuICBidG4taGVyby13YXJuaW5nLWRlZ3JlZTogMTBkZWcsXG4gIGJ0bi1oZXJvLWluZm8tZGVncmVlOiAtMTBkZWcsXG4gIGJ0bi1oZXJvLWRhbmdlci1kZWdyZWU6IC0yMGRlZyxcbiAgYnRuLWhlcm8tc2Vjb25kYXJ5LWRlZ3JlZTogYnRuLWhlcm8tZGVncmVlLFxuICBidG4taGVyby1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG5cbiAgYnRuLW91dGxpbmUtZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIGJ0bi1vdXRsaW5lLWhvdmVyLWZnOiAjZmZmZmZmLFxuICBidG4tb3V0bGluZS1mb2N1cy1mZzogY29sb3ItZmctaGVhZGluZyxcblxuICBidG4tZ3JvdXAtYmc6IGxheW91dC1iZyxcbiAgYnRuLWdyb3VwLWZnOiBjb2xvci1mZy1oZWFkaW5nLFxuICBidG4tZ3JvdXAtc2VwYXJhdG9yOiAjZGFkZmU2LFxuXG4gIGZvcm0tY29udHJvbC10ZXh0LXByaW1hcnktY29sb3I6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIGZvcm0tY29udHJvbC1iZzogY29sb3ItYmcsXG4gIGZvcm0tY29udHJvbC1mb2N1cy1iZzogY29sb3ItYmcsXG5cbiAgZm9ybS1jb250cm9sLWJvcmRlci13aWR0aDogMnB4LFxuICBmb3JtLWNvbnRyb2wtYm9yZGVyLXR5cGU6IHNvbGlkLFxuICBmb3JtLWNvbnRyb2wtYm9yZGVyLXJhZGl1czogcmFkaXVzLFxuICBmb3JtLWNvbnRyb2wtc2VtaS1yb3VuZC1ib3JkZXItcmFkaXVzOiAwLjc1cmVtLFxuICBmb3JtLWNvbnRyb2wtcm91bmQtYm9yZGVyLXJhZGl1czogMS41cmVtLFxuICBmb3JtLWNvbnRyb2wtYm9yZGVyLWNvbG9yOiAjZGFkZmU2LFxuICBmb3JtLWNvbnRyb2wtc2VsZWN0ZWQtYm9yZGVyLWNvbG9yOiBjb2xvci1zdWNjZXNzLFxuXG4gIGZvcm0tY29udHJvbC1pbmZvLWJvcmRlci1jb2xvcjogY29sb3ItaW5mbyxcbiAgZm9ybS1jb250cm9sLXN1Y2Nlc3MtYm9yZGVyLWNvbG9yOiBjb2xvci1zdWNjZXNzLFxuICBmb3JtLWNvbnRyb2wtZGFuZ2VyLWJvcmRlci1jb2xvcjogY29sb3ItZGFuZ2VyLFxuICBmb3JtLWNvbnRyb2wtd2FybmluZy1ib3JkZXItY29sb3I6IGNvbG9yLXdhcm5pbmcsXG5cbiAgZm9ybS1jb250cm9sLXBsYWNlaG9sZGVyLWNvbG9yOiBjb2xvci1mZyxcbiAgZm9ybS1jb250cm9sLXBsYWNlaG9sZGVyLWZvbnQtc2l6ZTogMXJlbSxcblxuICBmb3JtLWNvbnRyb2wtZm9udC1zaXplOiAxcmVtLFxuICBmb3JtLWNvbnRyb2wtcGFkZGluZzogMC43NXJlbSAxLjEyNXJlbSxcbiAgZm9ybS1jb250cm9sLWZvbnQtc2l6ZS1zbTogZm9udC1zaXplLXNtLFxuICBmb3JtLWNvbnRyb2wtcGFkZGluZy1zbTogMC4zNzVyZW0gMS4xMjVyZW0sXG4gIGZvcm0tY29udHJvbC1mb250LXNpemUtbGc6IGZvbnQtc2l6ZS1sZyxcbiAgZm9ybS1jb250cm9sLXBhZGRpbmctbGc6IDEuMTI1cmVtLFxuXG4gIGZvcm0tY29udHJvbC1sYWJlbC1mb250LXdlaWdodDogNDAwLFxuXG4gIGZvcm0tY29udHJvbC1mZWVkYmFjay1mb250LXNpemU6IDAuODc1cmVtLFxuICBmb3JtLWNvbnRyb2wtZmVlZGJhY2stZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LW5vcm1hbCxcblxuICBjaGVja2JveC1iZzogdHJhbnNwYXJlbnQsXG4gIGNoZWNrYm94LXNpemU6IDEuMjVyZW0sXG4gIGNoZWNrYm94LWJvcmRlci1zaXplOiAycHgsXG4gIGNoZWNrYm94LWJvcmRlci1jb2xvcjogZm9ybS1jb250cm9sLWJvcmRlci1jb2xvcixcbiAgY2hlY2tib3gtY2hlY2ttYXJrOiB0cmFuc3BhcmVudCxcblxuICBjaGVja2JveC1jaGVja2VkLWJnOiB0cmFuc3BhcmVudCxcbiAgY2hlY2tib3gtY2hlY2tlZC1zaXplOiAxLjI1cmVtLFxuICBjaGVja2JveC1jaGVja2VkLWJvcmRlci1zaXplOiAycHgsXG4gIGNoZWNrYm94LWNoZWNrZWQtYm9yZGVyLWNvbG9yOiBjb2xvci1zdWNjZXNzLFxuICBjaGVja2JveC1jaGVja2VkLWNoZWNrbWFyazogY29sb3ItZmctaGVhZGluZyxcblxuICBjaGVja2JveC1kaXNhYmxlZC1iZzogdHJhbnNwYXJlbnQsXG4gIGNoZWNrYm94LWRpc2FibGVkLXNpemU6IDEuMjVyZW0sXG4gIGNoZWNrYm94LWRpc2FibGVkLWJvcmRlci1zaXplOiAycHgsXG4gIGNoZWNrYm94LWRpc2FibGVkLWJvcmRlci1jb2xvcjogY29sb3ItZmctaGVhZGluZyxcbiAgY2hlY2tib3gtZGlzYWJsZWQtY2hlY2ttYXJrOiBjb2xvci1mZy1oZWFkaW5nLFxuXG4gIG1vZGFsLWZvbnQtc2l6ZTogZm9udC1zaXplLFxuICBtb2RhbC1saW5lLWhlaWdodDogbGluZS1oZWlnaHQsXG4gIG1vZGFsLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ub3JtYWwsXG4gIG1vZGFsLWZnOiBjb2xvci1mZy10ZXh0LFxuICBtb2RhbC1mZy1oZWFkaW5nOiBjb2xvci1mZy1oZWFkaW5nLFxuICBtb2RhbC1iZzogY29sb3ItYmcsXG4gIG1vZGFsLWJvcmRlcjogdHJhbnNwYXJlbnQsXG4gIG1vZGFsLWJvcmRlci1yYWRpdXM6IHJhZGl1cyxcbiAgbW9kYWwtcGFkZGluZzogcGFkZGluZyxcbiAgbW9kYWwtaGVhZGVyLWZvbnQtZmFtaWx5OiBmb250LXNlY29uZGFyeSxcbiAgbW9kYWwtaGVhZGVyLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ib2xkZXIsXG4gIG1vZGFsLWhlYWRlci1mb250LXNpemU6IGZvbnQtc2l6ZS1sZyxcbiAgbW9kYWwtYm9keS1mb250LWZhbWlseTogZm9udC1tYWluLFxuICBtb2RhbC1ib2R5LWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ub3JtYWwsXG4gIG1vZGFsLWJvZHktZm9udC1zaXplOiBmb250LXNpemUsXG4gIG1vZGFsLXNlcGFyYXRvcjogc2VwYXJhdG9yLFxuXG4gIGJhZGdlLWZnLXRleHQ6IGNvbG9yLXdoaXRlLFxuICBiYWRnZS1wcmltYXJ5LWJnLWNvbG9yOiBjb2xvci1wcmltYXJ5LFxuICBiYWRnZS1zdWNjZXNzLWJnLWNvbG9yOiBjb2xvci1zdWNjZXNzLFxuICBiYWRnZS1pbmZvLWJnLWNvbG9yOiBjb2xvci1pbmZvLFxuICBiYWRnZS13YXJuaW5nLWJnLWNvbG9yOiBjb2xvci13YXJuaW5nLFxuICBiYWRnZS1kYW5nZXItYmctY29sb3I6IGNvbG9yLWRhbmdlcixcblxuICBwcm9ncmVzcy1iYXItaGVpZ2h0LXhsZzogMS43NXJlbSxcbiAgcHJvZ3Jlc3MtYmFyLWhlaWdodC1sZzogMS41cmVtLFxuICBwcm9ncmVzcy1iYXItaGVpZ2h0OiAxLjM3NXJlbSxcbiAgcHJvZ3Jlc3MtYmFyLWhlaWdodC1zbTogMS4yNXJlbSxcbiAgcHJvZ3Jlc3MtYmFyLWhlaWdodC14czogMXJlbSxcbiAgcHJvZ3Jlc3MtYmFyLWFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXMsXG4gIHByb2dyZXNzLWJhci1mb250LXNpemUteGxnOiBmb250LXNpemUteGxnLFxuICBwcm9ncmVzcy1iYXItZm9udC1zaXplLWxnOiBmb250LXNpemUtbGcsXG4gIHByb2dyZXNzLWJhci1mb250LXNpemU6IGZvbnQtc2l6ZSxcbiAgcHJvZ3Jlc3MtYmFyLWZvbnQtc2l6ZS1zbTogZm9udC1zaXplLXNtLFxuICBwcm9ncmVzcy1iYXItZm9udC1zaXplLXhzOiBmb250LXNpemUteHMsXG4gIHByb2dyZXNzLWJhci1yYWRpdXM6IHJhZGl1cyxcbiAgcHJvZ3Jlc3MtYmFyLWJnOiBsYXlvdXQtYmcsXG4gIHByb2dyZXNzLWJhci1mb250LWNvbG9yOiBjb2xvci13aGl0ZSxcbiAgcHJvZ3Jlc3MtYmFyLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ib2xkLFxuICBwcm9ncmVzcy1iYXItZGVmYXVsdC1iZzogY29sb3ItaW5mbyxcbiAgcHJvZ3Jlc3MtYmFyLXByaW1hcnktYmc6IGNvbG9yLXByaW1hcnksXG4gIHByb2dyZXNzLWJhci1zdWNjZXNzLWJnOiBjb2xvci1zdWNjZXNzLFxuICBwcm9ncmVzcy1iYXItaW5mby1iZzogY29sb3ItaW5mbyxcbiAgcHJvZ3Jlc3MtYmFyLXdhcm5pbmctYmc6IGNvbG9yLXdhcm5pbmcsXG4gIHByb2dyZXNzLWJhci1kYW5nZXItYmc6IGNvbG9yLWRhbmdlcixcblxuICBhbGVydC1mb250LXNpemU6IGZvbnQtc2l6ZSxcbiAgYWxlcnQtbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0LFxuICBhbGVydC1mb250LXdlaWdodDogZm9udC13ZWlnaHQtbm9ybWFsLFxuICBhbGVydC1mZzogY29sb3Itd2hpdGUsXG4gIGFsZXJ0LW91dGxpbmUtZmc6IGNvbG9yLWZnLFxuICBhbGVydC1iZzogY29sb3ItYmcsXG4gIGFsZXJ0LWFjdGl2ZS1iZzogY29sb3ItZmcsXG4gIGFsZXJ0LWRpc2FibGVkLWJnOiBjb2xvci1kaXNhYmxlZCxcbiAgYWxlcnQtZGlzYWJsZWQtZmc6IGNvbG9yLWZnLFxuICBhbGVydC1wcmltYXJ5LWJnOiBjb2xvci1wcmltYXJ5LFxuICBhbGVydC1pbmZvLWJnOiBjb2xvci1pbmZvLFxuICBhbGVydC1zdWNjZXNzLWJnOiBjb2xvci1zdWNjZXNzLFxuICBhbGVydC13YXJuaW5nLWJnOiBjb2xvci13YXJuaW5nLFxuICBhbGVydC1kYW5nZXItYmc6IGNvbG9yLWRhbmdlcixcbiAgYWxlcnQtaGVpZ2h0LXh4c21hbGw6IDUycHgsXG4gIGFsZXJ0LWhlaWdodC14c21hbGw6IDcycHgsXG4gIGFsZXJ0LWhlaWdodC1zbWFsbDogOTJweCxcbiAgYWxlcnQtaGVpZ2h0LW1lZGl1bTogMTEycHgsXG4gIGFsZXJ0LWhlaWdodC1sYXJnZTogMTMycHgsXG4gIGFsZXJ0LWhlaWdodC14bGFyZ2U6IDE1MnB4LFxuICBhbGVydC1oZWlnaHQteHhsYXJnZTogMTcycHgsXG4gIGFsZXJ0LXNoYWRvdzogbm9uZSxcbiAgYWxlcnQtYm9yZGVyLXJhZGl1czogcmFkaXVzLFxuICBhbGVydC1wYWRkaW5nOiAxcmVtIDEuMTI1cmVtLFxuICBhbGVydC1jbG9zYWJsZS1wYWRkaW5nOiAzcmVtLFxuICBhbGVydC1idXR0b24tcGFkZGluZzogM3JlbSxcbiAgYWxlcnQtbWFyZ2luOiBtYXJnaW4sXG5cbiAgY2hhdC1mb250LXNpemU6IGZvbnQtc2l6ZSxcbiAgY2hhdC1mZzogY29sb3Itd2hpdGUsXG4gIGNoYXQtYmc6IGNvbG9yLWJnLFxuICBjaGF0LWJvcmRlci1yYWRpdXM6IHJhZGl1cyxcbiAgY2hhdC1mZy10ZXh0OiBjb2xvci1mZy10ZXh0LFxuICBjaGF0LWhlaWdodC14eHNtYWxsOiA5NnB4LFxuICBjaGF0LWhlaWdodC14c21hbGw6IDIxNnB4LFxuICBjaGF0LWhlaWdodC1zbWFsbDogMzM2cHgsXG4gIGNoYXQtaGVpZ2h0LW1lZGl1bTogNDU2cHgsXG4gIGNoYXQtaGVpZ2h0LWxhcmdlOiA1NzZweCxcbiAgY2hhdC1oZWlnaHQteGxhcmdlOiA2OTZweCxcbiAgY2hhdC1oZWlnaHQteHhsYXJnZTogODE2cHgsXG4gIGNoYXQtYm9yZGVyOiBib3JkZXIsXG4gIGNoYXQtcGFkZGluZzogcGFkZGluZyxcbiAgY2hhdC1zaGFkb3c6IHNoYWRvdyxcbiAgY2hhdC1zZXBhcmF0b3I6IHNlcGFyYXRvcixcbiAgY2hhdC1tZXNzYWdlLWZnOiBjb2xvci13aGl0ZSxcbiAgY2hhdC1tZXNzYWdlLWJnOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICM0Y2E2ZmYsICM1OWJmZmYpLFxuICBjaGF0LW1lc3NhZ2UtcmVwbHktYmc6IGNvbG9yLWJnLWFjdGl2ZSxcbiAgY2hhdC1tZXNzYWdlLXJlcGx5LWZnOiBjb2xvci1mZy10ZXh0LFxuICBjaGF0LW1lc3NhZ2UtYXZhdGFyLWJnOiBjb2xvci1mZyxcbiAgY2hhdC1tZXNzYWdlLXNlbmRlci1mZzogY29sb3ItZmcsXG4gIGNoYXQtbWVzc2FnZS1xdW90ZS1mZzogY29sb3ItZmcsXG4gIGNoYXQtbWVzc2FnZS1xdW90ZS1iZzogY29sb3ItYmctYWN0aXZlLFxuICBjaGF0LW1lc3NhZ2UtZmlsZS1mZzogY29sb3ItZmcsXG4gIGNoYXQtbWVzc2FnZS1maWxlLWJnOiB0cmFuc3BhcmVudCxcbiAgY2hhdC1mb3JtLWJnOiB0cmFuc3BhcmVudCxcbiAgY2hhdC1mb3JtLWZnOiBjb2xvci1mZy1oZWFkaW5nLFxuICBjaGF0LWZvcm0tYm9yZGVyOiBzZXBhcmF0b3IsXG4gIGNoYXQtZm9ybS1wbGFjZWhvbGRlci1mZzogY29sb3ItZmcsXG4gIGNoYXQtZm9ybS1hY3RpdmUtYm9yZGVyOiBjb2xvci1mZyxcbiAgY2hhdC1hY3RpdmUtYmc6IGNvbG9yLWZnLFxuICBjaGF0LWRpc2FibGVkLWJnOiBjb2xvci1kaXNhYmxlZCxcbiAgY2hhdC1kaXNhYmxlZC1mZzogY29sb3ItZmcsXG4gIGNoYXQtcHJpbWFyeS1iZzogY29sb3ItcHJpbWFyeSxcbiAgY2hhdC1pbmZvLWJnOiBjb2xvci1pbmZvLFxuICBjaGF0LXN1Y2Nlc3MtYmc6IGNvbG9yLXN1Y2Nlc3MsXG4gIGNoYXQtd2FybmluZy1iZzogY29sb3Itd2FybmluZyxcbiAgY2hhdC1kYW5nZXItYmc6IGNvbG9yLWRhbmdlcixcblxuICBzcGlubmVyLWJnOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODMpLFxuICBzcGlubmVyLWNpcmNsZS1iZzogY29sb3ItYmctYWN0aXZlLFxuICBzcGlubmVyLWZnOiBjb2xvci1mZy10ZXh0LFxuICBzcGlubmVyLWFjdGl2ZS1iZzogY29sb3ItZmcsXG4gIHNwaW5uZXItZGlzYWJsZWQtYmc6IGNvbG9yLWRpc2FibGVkLFxuICBzcGlubmVyLWRpc2FibGVkLWZnOiBjb2xvci1mZyxcbiAgc3Bpbm5lci1wcmltYXJ5LWJnOiBjb2xvci1wcmltYXJ5LFxuICBzcGlubmVyLWluZm8tYmc6IGNvbG9yLWluZm8sXG4gIHNwaW5uZXItc3VjY2Vzcy1iZzogY29sb3Itc3VjY2VzcyxcbiAgc3Bpbm5lci13YXJuaW5nLWJnOiBjb2xvci13YXJuaW5nLFxuICBzcGlubmVyLWRhbmdlci1iZzogY29sb3ItZGFuZ2VyLFxuICBzcGlubmVyLXh4c21hbGw6IDEuMjVyZW0sXG4gIHNwaW5uZXIteHNtYWxsOiAxLjVyZW0sXG4gIHNwaW5uZXItc21hbGw6IDEuNzVyZW0sXG4gIHNwaW5uZXItbWVkaXVtOiAycmVtLFxuICBzcGlubmVyLWxhcmdlOiAyLjI1cmVtLFxuICBzcGlubmVyLXhsYXJnZTogMi41cmVtLFxuICBzcGlubmVyLXh4bGFyZ2U6IDNyZW0sXG5cbiAgc3RlcHBlci1pbmRleC1zaXplOiAycmVtLFxuICBzdGVwcGVyLWxhYmVsLWZvbnQtc2l6ZTogZm9udC1zaXplLXNtLFxuICBzdGVwcGVyLWxhYmVsLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ib2xkZXIsXG4gIHN0ZXBwZXItYWNjZW50LWNvbG9yOiBjb2xvci1wcmltYXJ5LFxuICBzdGVwcGVyLWNvbXBsZXRlZC1mZzogY29sb3Itd2hpdGUsXG4gIHN0ZXBwZXItZmc6IGNvbG9yLWZnLFxuICBzdGVwcGVyLWNvbXBsZXRlZC1pY29uLXNpemU6IDEuNXJlbSxcbiAgc3RlcHBlci1jb21wbGV0ZWQtaWNvbi13ZWlnaHQ6IGZvbnQtd2VpZ2h0LXVsdHJhLWJvbGQsXG4gIHN0ZXBwZXItc3RlcC1wYWRkaW5nOiBwYWRkaW5nLFxuXG4gIGFjY29yZGlvbi1wYWRkaW5nOiBwYWRkaW5nLFxuICBhY2NvcmRpb24tc2VwYXJhdG9yOiBzZXBhcmF0b3IsXG4gIGFjY29yZGlvbi1oZWFkZXItZm9udC1mYW1pbHk6IGZvbnQtc2Vjb25kYXJ5LFxuICBhY2NvcmRpb24taGVhZGVyLWZvbnQtc2l6ZTogZm9udC1zaXplLWxnLFxuICBhY2NvcmRpb24taGVhZGVyLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ub3JtYWwsXG4gIGFjY29yZGlvbi1oZWFkZXItZmctaGVhZGluZzogY29sb3ItZmctaGVhZGluZyxcbiAgYWNjb3JkaW9uLWhlYWRlci1kaXNhYmxlZC1mZzogY29sb3ItZmcsXG4gIGFjY29yZGlvbi1oZWFkZXItYm9yZGVyLXdpZHRoOiAxcHgsXG4gIGFjY29yZGlvbi1oZWFkZXItYm9yZGVyLXR5cGU6IHNvbGlkLFxuICBhY2NvcmRpb24taGVhZGVyLWJvcmRlci1jb2xvcjogYWNjb3JkaW9uLXNlcGFyYXRvcixcbiAgYWNjb3JkaW9uLWJvcmRlci1yYWRpdXM6IHJhZGl1cyxcbiAgYWNjb3JkaW9uLWl0ZW0tYmc6IGNvbG9yLWJnLFxuICBhY2NvcmRpb24taXRlbS1mb250LXNpemU6IGZvbnQtc2l6ZSxcbiAgYWNjb3JkaW9uLWl0ZW0tZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LW5vcm1hbCxcbiAgYWNjb3JkaW9uLWl0ZW0tZm9udC1mYW1pbHk6IGZvbnQtbWFpbixcbiAgYWNjb3JkaW9uLWl0ZW0tZmctdGV4dDogY29sb3ItZmctdGV4dCxcbiAgYWNjb3JkaW9uLWl0ZW0tc2hhZG93OiBzaGFkb3csXG5cbiAgbGlzdC1pdGVtLWJvcmRlci1jb2xvcjogdGFicy1zZXBhcmF0b3IsXG4gIGxpc3QtaXRlbS1wYWRkaW5nOiAxcmVtLFxuXG4gIGNhbGVuZGFyLXdpZHRoOiAyMS44NzVyZW0sXG4gIGNhbGVuZGFyLWJvZHktaGVpZ2h0OiAyNS42MjVyZW0sXG4gIGNhbGVuZGFyLWhlYWRlci10aXRsZS1mb250LXNpemU6IGZvbnQtc2l6ZS14bGcsXG4gIGNhbGVuZGFyLWhlYWRlci10aXRsZS1mb250LXdlaWdodDogZm9udC13ZWlnaHQtYm9sZCxcbiAgY2FsZW5kYXItaGVhZGVyLXN1Yi10aXRsZS1mb250LXNpemU6IGZvbnQtc2l6ZSxcbiAgY2FsZW5kYXItaGVhZGVyLXN1Yi10aXRsZS1mb250LXdlaWdodDogZm9udC13ZWlnaHQtdGhpbixcbiAgY2FsZW5kYXItbmF2aWdhdGlvbi1idXR0b24td2lkdGg6IDEwcmVtLFxuICBjYWxlbmRhci1zZWxlY3RlZC1pdGVtLWJnOiBjb2xvci1zdWNjZXNzLFxuICBjYWxlbmRhci1ob3Zlci1pdGVtLWJnOiBjYWxlbmRhci1zZWxlY3RlZC1pdGVtLWJnLFxuICBjYWxlbmRhci10b2RheS1pdGVtLWJnOiBjb2xvci1iZy1hY3RpdmUsXG4gIGNhbGVuZGFyLWFjdGl2ZS1pdGVtLWJnOiBjb2xvci1zdWNjZXNzLFxuICBjYWxlbmRhci1mZzogY29sb3ItZmctdGV4dCxcbiAgY2FsZW5kYXItc2VsZWN0ZWQtZmc6IGNvbG9yLXdoaXRlLFxuICBjYWxlbmRhci10b2RheS1mZzogY2FsZW5kYXItZmcsXG4gIGNhbGVuZGFyLWRheS1jZWxsLXdpZHRoOiAyLjYyNXJlbSxcbiAgY2FsZW5kYXItZGF5LWNlbGwtaGVpZ2h0OiAyLjYyNXJlbSxcbiAgY2FsZW5kYXItbW9udGgtY2VsbC13aWR0aDogNC4yNXJlbSxcbiAgY2FsZW5kYXItbW9udGgtY2VsbC1oZWlnaHQ6IDIuMzc1cmVtLFxuICBjYWxlbmRhci15ZWFyLWNlbGwtd2lkdGg6IGNhbGVuZGFyLW1vbnRoLWNlbGwtd2lkdGgsXG4gIGNhbGVuZGFyLXllYXItY2VsbC1oZWlnaHQ6IGNhbGVuZGFyLW1vbnRoLWNlbGwtaGVpZ2h0LFxuICBjYWxlbmRhci1pbmFjdGl2ZS1vcGFjaXR5OiAwLjUsXG4gIGNhbGVuZGFyLWRpc2FibGVkLW9wYWNpdHk6IDAuMyxcbiAgY2FsZW5kYXItYm9yZGVyLXJhZGl1czogcmFkaXVzLFxuICBjYWxlbmRhci13ZWVrZGF5LXdpZHRoOiBjYWxlbmRhci1kYXktY2VsbC13aWR0aCxcbiAgY2FsZW5kYXItd2Vla2RheS1oZWlnaHQ6IDEuNzVyZW0sXG4gIGNhbGVuZGFyLXdlZWtkYXktZm9udC1zaXplOiBmb250LXNpemUteHMsXG4gIGNhbGVuZGFyLXdlZWtkYXktZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LW5vcm1hbCxcbiAgY2FsZW5kYXItd2Vla2RheS1mZzogY29sb3ItZmcsXG4gIGNhbGVuZGFyLXdlZWtkYXktaG9saWRheS1mZzogY29sb3ItZGFuZ2VyLFxuICBjYWxlbmRhci1yYW5nZS1iZy1pbi1yYW5nZTogI2ViZmJmMixcblxuICBjYWxlbmRhci1sYXJnZS13aWR0aDogMjQuMzc1cmVtLFxuICBjYWxlbmRhci1sYXJnZS1ib2R5LWhlaWdodDogMjcuNzVyZW0sXG4gIGNhbGVuZGFyLWRheS1jZWxsLWxhcmdlLXdpZHRoOiAzcmVtLFxuICBjYWxlbmRhci1kYXktY2VsbC1sYXJnZS1oZWlnaHQ6IDNyZW0sXG4gIGNhbGVuZGFyLW1vbnRoLWNlbGwtbGFyZ2Utd2lkdGg6IDQuMjVyZW0sXG4gIGNhbGVuZGFyLW1vbnRoLWNlbGwtbGFyZ2UtaGVpZ2h0OiAyLjM3NXJlbSxcbiAgY2FsZW5kYXIteWVhci1jZWxsLWxhcmdlLXdpZHRoOiBjYWxlbmRhci1tb250aC1jZWxsLXdpZHRoLFxuICBjYWxlbmRhci15ZWFyLWNlbGwtbGFyZ2UtaGVpZ2h0OiBjYWxlbmRhci1tb250aC1jZWxsLWhlaWdodCxcblxuICBvdmVybGF5LWJhY2tkcm9wLWJnOiByZ2JhKDAsIDAsIDAsIDAuMjg4KSxcblxuICB0b29sdGlwLWJnOiBjb2xvci1mZy10ZXh0LFxuICB0b29sdGlwLXByaW1hcnktYmc6IGNvbG9yLXByaW1hcnksXG4gIHRvb2x0aXAtaW5mby1iZzogY29sb3ItaW5mbyxcbiAgdG9vbHRpcC1zdWNjZXNzLWJnOiBjb2xvci1zdWNjZXNzLFxuICB0b29sdGlwLXdhcm5pbmctYmc6IGNvbG9yLXdhcm5pbmcsXG4gIHRvb2x0aXAtZGFuZ2VyLWJnOiBjb2xvci1kYW5nZXIsXG4gIHRvb2x0aXAtZmc6IGNvbG9yLWJnLWFjdGl2ZSxcbiAgdG9vbHRpcC1zdGF0dXMtZmc6IGNvbG9yLWJnLWFjdGl2ZSxcbiAgdG9vbHRpcC1zaGFkb3c6IHNoYWRvdyxcbiAgdG9vbHRpcC1mb250LXNpemU6IGZvbnQtc2l6ZSxcblxuICBzZWxlY3QtYm9yZGVyLXdpZHRoOiAycHgsXG4gIHNlbGVjdC1tYXgtaGVpZ2h0OiAyMHJlbSxcbiAgc2VsZWN0LWJnOiBjb2xvci1iZyxcblxuICBzZWxlY3QtY2hlY2tib3gtY29sb3I6IGNoZWNrYm94LWJvcmRlci1jb2xvcixcbiAgc2VsZWN0LWNoZWNrbWFyay1jb2xvcjogY2hlY2tib3gtYm9yZGVyLWNvbG9yLFxuXG4gIHNlbGVjdC1vcHRpb24tZGlzYWJsZWQtYmc6ICNmMmY0ZjcsXG4gIHNlbGVjdC1vcHRpb24tZGlzYWJsZWQtb3BhY2l0eTogMC4zLFxuICBzZWxlY3Qtb3B0aW9uLXBhZGRpbmc6IDAuNzVyZW0gMS41cmVtLFxuXG4gIGRhdGVwaWNrZXItZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIGRhdGVwaWNrZXItYmc6IGNvbG9yLWJnLFxuICBkYXRlcGlja2VyLWJvcmRlcjogY29sb3Itc3VjY2VzcyxcbiAgZGF0ZXBpY2tlci1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG4gIGRhdGVwaWNrZXItc2hhZG93OiBub25lLFxuICBkYXRlcGlja2VyLWFycm93LXNpemU6IDExcHgsXG5cbiAgcmFkaW8tYmc6IHRyYW5zcGFyZW50LFxuICByYWRpby1mZzogY29sb3ItZmctdGV4dCxcbiAgcmFkaW8tc2l6ZTogMS4yNXJlbSxcbiAgcmFkaW8tYm9yZGVyLXNpemU6IDJweCxcbiAgcmFkaW8tYm9yZGVyLWNvbG9yOiBmb3JtLWNvbnRyb2wtYm9yZGVyLWNvbG9yLFxuICByYWRpby1jaGVja21hcms6IHRyYW5zcGFyZW50LFxuICByYWRpby1jaGVja2VkLWJnOiB0cmFuc3BhcmVudCxcbiAgcmFkaW8tY2hlY2tlZC1zaXplOiAxLjI1cmVtLFxuICByYWRpby1jaGVja2VkLWJvcmRlci1zaXplOiAycHgsXG4gIHJhZGlvLWNoZWNrZWQtYm9yZGVyLWNvbG9yOiBjb2xvci1zdWNjZXNzLFxuICByYWRpby1jaGVja2VkLWNoZWNrbWFyazogY29sb3Itc3VjY2VzcyxcbiAgcmFkaW8tZGlzYWJsZWQtYmc6IHRyYW5zcGFyZW50LFxuICByYWRpby1kaXNhYmxlZC1zaXplOiAxLjI1cmVtLFxuICByYWRpby1kaXNhYmxlZC1ib3JkZXItc2l6ZTogMnB4LFxuICByYWRpby1kaXNhYmxlZC1ib3JkZXItY29sb3I6IHJhZGlvLWJvcmRlci1jb2xvcixcbiAgcmFkaW8tZGlzYWJsZWQtY2hlY2ttYXJrOiByYWRpby1jaGVja21hcmssXG4pO1xuXG4vLyByZWdpc3RlciB0aGUgdGhlbWVcbiRuYi10aGVtZXM6IG5iLXJlZ2lzdGVyLXRoZW1lKCR0aGVtZSwgZGVmYXVsdCk7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWt2ZW8uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICovXG5cbkBpbXBvcnQgJy4uL2NvcmUvZnVuY3Rpb25zJztcbkBpbXBvcnQgJy4uL2NvcmUvbWl4aW5zJztcbkBpbXBvcnQgJ2RlZmF1bHQnO1xuXG4vLyBkZWZhdWx0IHRoZSBiYXNlIHRoZW1lXG4kdGhlbWU6IChcbiAgcmFkaXVzOiAwLjVyZW0sXG5cbiAgY29sb3ItYmc6ICMzZDM3ODAsXG4gIGNvbG9yLWJnLWFjdGl2ZTogIzQ5NDI5OSxcbiAgY29sb3ItZmc6ICNhMWExZTUsXG4gIGNvbG9yLWZnLWhlYWRpbmc6ICNmZmZmZmYsXG4gIGNvbG9yLWZnLXRleHQ6ICNkMWQxZmYsXG4gIGNvbG9yLWZnLWhpZ2hsaWdodDogIzAwZjlhNixcblxuICBjb2xvci1ncmF5OiByZ2JhKDgxLCAxMTMsIDE2NSwgMC4xNSksXG4gIGNvbG9yLW5ldXRyYWw6IHRyYW5zcGFyZW50LFxuICBjb2xvci13aGl0ZTogI2ZmZmZmZixcbiAgY29sb3ItZGlzYWJsZWQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSxcblxuICBjb2xvci1wcmltYXJ5OiAjNzY1OWZmLFxuICBjb2xvci1zdWNjZXNzOiAjMDBkOTc3LFxuICBjb2xvci1pbmZvOiAjMDA4OGZmLFxuICBjb2xvci13YXJuaW5nOiAjZmZhMTAwLFxuICBjb2xvci1kYW5nZXI6ICNmZjM4NmEsXG5cbiAgbGluay1jb2xvcjogIzAwZjlhNixcbiAgbGluay1jb2xvci1ob3ZlcjogIzE0ZmZiZSxcblxuICBzZXBhcmF0b3I6ICMzNDJlNzMsXG4gIHNoYWRvdzogMCA4cHggMjBweCAwIHJnYmEoNDAsIDM3LCA4OSwgMC42KSxcblxuICBjYXJkLWhlYWRlci1mb250LXdlaWdodDogZm9udC13ZWlnaHQtYm9sZGVyLFxuXG4gIGxheW91dC1iZzogIzJmMjk2YixcblxuICBzY3JvbGxiYXItZmc6ICM1NTRkYjMsXG4gIHNjcm9sbGJhci1iZzogIzMzMmU3MyxcblxuICByYWRpYWwtZ3JhZGllbnQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDUwJSwgIzQyM2Y4YywgIzMwMmM2ZSksXG4gIGxpbmVhci1ncmFkaWVudDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMTcxNzQ5LCAjNDEzNzg5KSxcblxuICBzaWRlYmFyLWZnOiBjb2xvci1zZWNvbmRhcnksXG4gIHNpZGViYXItYmc6IGNvbG9yLWJnLFxuXG4gIGhlYWRlci1mZzogY29sb3Itd2hpdGUsXG4gIGhlYWRlci1iZzogY29sb3ItYmcsXG5cbiAgZm9vdGVyLWZnOiBjb2xvci1mZyxcbiAgZm9vdGVyLWJnOiBjb2xvci1iZyxcblxuICBhY3Rpb25zLWZnOiBjb2xvci1mZyxcbiAgYWN0aW9ucy1iZzogY29sb3ItYmcsXG5cbiAgdXNlci1mZzogY29sb3ItYmcsXG4gIHVzZXItYmc6IGNvbG9yLWZnLFxuICB1c2VyLWZnLWhpZ2hsaWdodDogY29sb3ItZmctaGlnaGxpZ2h0LFxuXG4gIHBvcG92ZXItYm9yZGVyOiBjb2xvci1wcmltYXJ5LFxuICBwb3BvdmVyLXNoYWRvdzogc2hhZG93LFxuXG4gIGNvbnRleHQtbWVudS1hY3RpdmUtYmc6IGNvbG9yLXByaW1hcnksXG4gIGNvbnRleHQtbWVudS1ib3JkZXI6IGNvbG9yLXByaW1hcnksXG5cbiAgZm9vdGVyLWhlaWdodDogaGVhZGVyLWhlaWdodCxcblxuICBzaWRlYmFyLXdpZHRoOiAxNi4yNXJlbSxcbiAgc2lkZWJhci13aWR0aC1jb21wYWN0OiAzLjQ1cmVtLFxuXG4gIG1lbnUtZmc6IGNvbG9yLWZnLFxuICBtZW51LWJnOiBjb2xvci1iZyxcbiAgbWVudS1hY3RpdmUtZmc6IGNvbG9yLXdoaXRlLFxuICBtZW51LWdyb3VwLWZnOiBjb2xvci13aGl0ZSxcbiAgbWVudS1mb250LXdlaWdodDogZm9udC13ZWlnaHQtbm9ybWFsLFxuICBtZW51LWFjdGl2ZS1mb250LXdlaWdodDogZm9udC13ZWlnaHQtYm9sZGVyLFxuICBtZW51LXN1Ym1lbnUtYmc6IGxheW91dC1iZyxcbiAgbWVudS1zdWJtZW51LWZnOiBjb2xvci1mZyxcbiAgbWVudS1zdWJtZW51LWFjdGl2ZS1mZzogY29sb3ItZmctaGVhZGluZyxcbiAgbWVudS1zdWJtZW51LWFjdGl2ZS1iZzogcmdiYSgwLCAyNTUsIDE3MCwgMC4yNSksXG4gIG1lbnUtc3VibWVudS1hY3RpdmUtYm9yZGVyLWNvbG9yOiBjb2xvci1mZy1oaWdobGlnaHQsXG4gIG1lbnUtc3VibWVudS1hY3RpdmUtc2hhZG93OiAwIDJweCAxMnB4IDAgcmdiYSgwLCAyNTUsIDE3MCwgMC4yNSksXG4gIG1lbnUtaXRlbS1wYWRkaW5nOiAwLjI1cmVtIDAuNzVyZW0sXG4gIG1lbnUtaXRlbS1zZXBhcmF0b3I6IHRyYW5zcGFyZW50LFxuXG4gIGJ0bi1oZXJvLXNoYWRvdzogMCA0cHggMTBweCAwIHJnYmEoMzMsIDcsIDc3LCAwLjUpLFxuICBidG4taGVyby10ZXh0LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4zKSxcbiAgYnRuLWhlcm8tYmV2ZWwtc2l6ZTogMCAzcHggMCAwLFxuICBidG4taGVyby1nbG93LXNpemU6IDAgMnB4IDhweCAwLFxuICBidG4taGVyby1wcmltYXJ5LWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby1zdWNjZXNzLWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby13YXJuaW5nLWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby1pbmZvLWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby1kYW5nZXItZ2xvdy1zaXplOiBidG4taGVyby1nbG93LXNpemUsXG4gIGJ0bi1oZXJvLXNlY29uZGFyeS1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLXNlY29uZGFyeS1ib3JkZXI6IGNvbG9yLXByaW1hcnksXG4gIGJ0bi1vdXRsaW5lLWZnOiBjb2xvci1mZy1oZWFkaW5nLFxuICBidG4tb3V0bGluZS1ob3Zlci1mZzogY29sb3ItZmctaGVhZGluZyxcbiAgYnRuLW91dGxpbmUtZm9jdXMtZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIGJ0bi1ncm91cC1iZzogIzM3MzI3MyxcbiAgYnRuLWdyb3VwLXNlcGFyYXRvcjogIzMxMmM2NixcblxuICBmb3JtLWNvbnRyb2wtYmc6ICMzNzMxN2EsXG4gIGZvcm0tY29udHJvbC1mb2N1cy1iZzogc2VwYXJhdG9yLFxuICBmb3JtLWNvbnRyb2wtYm9yZGVyLWNvbG9yOiBzZXBhcmF0b3IsXG4gIGZvcm0tY29udHJvbC1zZWxlY3RlZC1ib3JkZXItY29sb3I6IGNvbG9yLXByaW1hcnksXG5cbiAgY2hlY2tib3gtYmc6IHRyYW5zcGFyZW50LFxuICBjaGVja2JveC1zaXplOiAxLjI1cmVtLFxuICBjaGVja2JveC1ib3JkZXItc2l6ZTogMnB4LFxuICBjaGVja2JveC1ib3JkZXItY29sb3I6IGNvbG9yLWZnLFxuICBjaGVja2JveC1jaGVja21hcms6IHRyYW5zcGFyZW50LFxuXG4gIGNoZWNrYm94LWNoZWNrZWQtYmc6IHRyYW5zcGFyZW50LFxuICBjaGVja2JveC1jaGVja2VkLXNpemU6IDEuMjVyZW0sXG4gIGNoZWNrYm94LWNoZWNrZWQtYm9yZGVyLXNpemU6IDJweCxcbiAgY2hlY2tib3gtY2hlY2tlZC1ib3JkZXItY29sb3I6IGNvbG9yLXN1Y2Nlc3MsXG4gIGNoZWNrYm94LWNoZWNrZWQtY2hlY2ttYXJrOiBjb2xvci1mZy1oZWFkaW5nLFxuXG4gIGNoZWNrYm94LWRpc2FibGVkLWJnOiB0cmFuc3BhcmVudCxcbiAgY2hlY2tib3gtZGlzYWJsZWQtc2l6ZTogMS4yNXJlbSxcbiAgY2hlY2tib3gtZGlzYWJsZWQtYm9yZGVyLXNpemU6IDJweCxcbiAgY2hlY2tib3gtZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiBjb2xvci1mZy1oZWFkaW5nLFxuICBjaGVja2JveC1kaXNhYmxlZC1jaGVja21hcms6IGNvbG9yLWZnLWhlYWRpbmcsXG5cbiAgc2VhcmNoLWJnOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMxNzE3NDksICM0MTM3ODkpLFxuXG4gIHNtYXJ0LXRhYmxlLWhlYWRlci1mb250LXdlaWdodDogZm9udC13ZWlnaHQtbm9ybWFsLFxuICBzbWFydC10YWJsZS1oZWFkZXItYmc6IGNvbG9yLWJnLWFjdGl2ZSxcbiAgc21hcnQtdGFibGUtYmctZXZlbjogIzNhMzQ3YSxcbiAgc21hcnQtdGFibGUtYmctYWN0aXZlOiBjb2xvci1iZy1hY3RpdmUsXG5cbiAgc21hcnQtdGFibGUtcGFnaW5nLWJvcmRlci1jb2xvcjogY29sb3ItcHJpbWFyeSxcbiAgc21hcnQtdGFibGUtcGFnaW5nLWJvcmRlci13aWR0aDogMnB4LFxuICBzbWFydC10YWJsZS1wYWdpbmctZmctYWN0aXZlOiBjb2xvci1mZy1oZWFkaW5nLFxuICBzbWFydC10YWJsZS1wYWdpbmctYmctYWN0aXZlOiBjb2xvci1wcmltYXJ5LFxuICBzbWFydC10YWJsZS1wYWdpbmctaG92ZXI6IHJnYmEoMCwgMCwgMCwgMC4yKSxcblxuICBiYWRnZS1mZy10ZXh0OiBjb2xvci13aGl0ZSxcbiAgYmFkZ2UtcHJpbWFyeS1iZy1jb2xvcjogY29sb3ItcHJpbWFyeSxcbiAgYmFkZ2Utc3VjY2Vzcy1iZy1jb2xvcjogY29sb3Itc3VjY2VzcyxcbiAgYmFkZ2UtaW5mby1iZy1jb2xvcjogY29sb3ItaW5mbyxcbiAgYmFkZ2Utd2FybmluZy1iZy1jb2xvcjogY29sb3Itd2FybmluZyxcbiAgYmFkZ2UtZGFuZ2VyLWJnLWNvbG9yOiBjb2xvci1kYW5nZXIsXG5cbiAgc3Bpbm5lci1iZzogcmdiYSg2MSwgNTUsIDEyOCwgMC45KSxcbiAgc3RlcHBlci1hY2NlbnQtY29sb3I6IGNvbG9yLXN1Y2Nlc3MsXG5cbiAgdGFicy1zZWxlY3RlZC1zZWNvbmQtY29sb3I6IGNvbG9yLXN1Y2Nlc3MsXG4gIHRhYnMtc2VsZWN0ZWQtZGVncmVlczogMjBkZWcsXG5cbiAgY2FsZW5kYXItYWN0aXZlLWl0ZW0tYmc6IGNvbG9yLXByaW1hcnksXG4gIGNhbGVuZGFyLXNlbGVjdGVkLWl0ZW0tYmc6IGNvbG9yLXByaW1hcnksXG4gIGNhbGVuZGFyLXJhbmdlLWJnLWluLXJhbmdlOiAjNGU0MDk1LFxuICBjYWxlbmRhci10b2RheS1pdGVtLWJnOiAjMzUyZjZlLFxuXG4gIHNlbGVjdC1vcHRpb24tZGlzYWJsZWQtYmc6ICMzMTJlNzUsXG5cbiAgdG9hc3RyLWNvbG9yLWZnOiBjb2xvci13aGl0ZSxcbiAgdG9hc3RyLXBhZGRpbmc6IDEuMjVyZW0sXG4gIHRvYXN0ci1ib3JkZXI6IDAsXG4gIHRvYXN0ci1kZWZhdWx0LWJhY2tncm91bmQ6ICNiY2MzY2MsXG5cbiAgdG9vbHRpcC1mZzogY29sb3ItYmcsXG4gIHRvb2x0aXAtc3RhdHVzLWZnOiBjb2xvci13aGl0ZSxcblxuICBkYXRlcGlja2VyLWJvcmRlcjogY29sb3ItcHJpbWFyeSxcbiAgZGF0ZXBpY2tlci1zaGFkb3c6IHNoYWRvdyxcblxuICByYWRpby1jaGVja2VkLWJvcmRlci1jb2xvcjogY29sb3ItcHJpbWFyeSxcbiAgcmFkaW8tY2hlY2tlZC1jaGVja21hcms6IGNvbG9yLXByaW1hcnksXG4pO1xuXG4vLyByZWdpc3RlciB0aGUgdGhlbWVcbiRuYi10aGVtZXM6IG5iLXJlZ2lzdGVyLXRoZW1lKCR0aGVtZSwgY29zbWljLCBkZWZhdWx0KTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cblxuQGltcG9ydCAnLi4vY29yZS9mdW5jdGlvbnMnO1xuQGltcG9ydCAnLi4vY29yZS9taXhpbnMnO1xuQGltcG9ydCAnZGVmYXVsdCc7XG5cbi8vIGRlZmF1bHQgdGhlIGJhc2UgdGhlbWVcbiR0aGVtZTogKFxuICBoZWFkZXItZmc6ICNmN2ZhZmIsXG4gIGhlYWRlci1iZzogIzExMTIxOCxcblxuICBsYXlvdXQtYmc6ICNmMWY1ZjgsXG5cbiAgY29sb3ItZmctaGVhZGluZzogIzE4MTgxOCxcbiAgY29sb3ItZmctdGV4dDogIzRiNGI0YixcbiAgY29sb3ItZmctaGlnaGxpZ2h0OiBjb2xvci1mZyxcblxuICBzZXBhcmF0b3I6ICNjZGQ1ZGMsXG5cbiAgcmFkaXVzOiAwLjE3cmVtLFxuXG4gIHNjcm9sbGJhci1iZzogI2UzZTllZSxcblxuICBjb2xvci1wcmltYXJ5OiAjNzNhMWZmLFxuICBjb2xvci1zdWNjZXNzOiAjNWRjZmUzLFxuICBjb2xvci1pbmZvOiAjYmE3ZmVjLFxuICBjb2xvci13YXJuaW5nOiAjZmZhMzZiLFxuICBjb2xvci1kYW5nZXI6ICNmZjZiODMsXG5cbiAgYnRuLXNlY29uZGFyeS1iZzogI2VkZjJmNSxcbiAgYnRuLXNlY29uZGFyeS1ib3JkZXI6ICNlZGYyZjUsXG5cbiAgYWN0aW9ucy1mZzogI2QzZGJlNSxcbiAgYWN0aW9ucy1iZzogY29sb3ItYmcsXG5cbiAgc2lkZWJhci1iZzogI2UzZTllZSxcblxuICBib3JkZXItY29sb3I6ICNkNWRiZTAsXG5cbiAgbWVudS1mb250LXdlaWdodDogZm9udC13ZWlnaHQtYm9sZGVyLFxuICBtZW51LWZnOiBjb2xvci1mZy10ZXh0LFxuICBtZW51LWJnOiAjZTNlOWVlLFxuICBtZW51LWFjdGl2ZS1mZzogY29sb3ItZmctaGVhZGluZyxcbiAgbWVudS1hY3RpdmUtYmc6IG1lbnUtYmcsXG5cbiAgbWVudS1zdWJtZW51LWJnOiBtZW51LWJnLFxuICBtZW51LXN1Ym1lbnUtZmc6IGNvbG9yLWZnLXRleHQsXG4gIG1lbnUtc3VibWVudS1hY3RpdmUtZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIG1lbnUtc3VibWVudS1hY3RpdmUtYmc6ICNjZGQ1ZGMsXG4gIG1lbnUtc3VibWVudS1hY3RpdmUtYm9yZGVyLWNvbG9yOiBtZW51LXN1Ym1lbnUtYWN0aXZlLWJnLFxuICBtZW51LXN1Ym1lbnUtYWN0aXZlLXNoYWRvdzogbm9uZSxcbiAgbWVudS1zdWJtZW51LWhvdmVyLWZnOiBtZW51LXN1Ym1lbnUtYWN0aXZlLWZnLFxuICBtZW51LXN1Ym1lbnUtaG92ZXItYmc6IG1lbnUtYmcsXG4gIG1lbnUtc3VibWVudS1pdGVtLWJvcmRlci13aWR0aDogMC4xMjVyZW0sXG4gIG1lbnUtc3VibWVudS1pdGVtLWJvcmRlci1yYWRpdXM6IHJhZGl1cyxcbiAgbWVudS1zdWJtZW51LWl0ZW0tcGFkZGluZzogMC41cmVtIDFyZW0sXG4gIG1lbnUtc3VibWVudS1pdGVtLWNvbnRhaW5lci1wYWRkaW5nOiAwIDEuMjVyZW0sXG4gIG1lbnUtc3VibWVudS1wYWRkaW5nOiAwLjVyZW0sXG5cbiAgYnRuLWJvcmRlci1yYWRpdXM6IGJ0bi1zZW1pLXJvdW5kLWJvcmRlci1yYWRpdXMsXG5cbiAgYnRuLWhlcm8tZGVncmVlOiAwZGVnLFxuICBidG4taGVyby1wcmltYXJ5LWRlZ3JlZTogYnRuLWhlcm8tZGVncmVlLFxuICBidG4taGVyby1zdWNjZXNzLWRlZ3JlZTogYnRuLWhlcm8tZGVncmVlLFxuICBidG4taGVyby13YXJuaW5nLWRlZ3JlZTogYnRuLWhlcm8tZGVncmVlLFxuICBidG4taGVyby1pbmZvLWRlZ3JlZTogYnRuLWhlcm8tZGVncmVlLFxuICBidG4taGVyby1kYW5nZXItZGVncmVlOiBidG4taGVyby1kZWdyZWUsXG4gIGJ0bi1oZXJvLXNlY29uZGFyeS1kZWdyZWU6IGJ0bi1oZXJvLWRlZ3JlZSxcbiAgYnRuLWhlcm8tZ2xvdy1zaXplOiAwIDAgMjBweCAwLFxuICBidG4taGVyby1wcmltYXJ5LWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby1zdWNjZXNzLWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby13YXJuaW5nLWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby1pbmZvLWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby1kYW5nZXItZ2xvdy1zaXplOiBidG4taGVyby1nbG93LXNpemUsXG4gIGJ0bi1oZXJvLXNlY29uZGFyeS1nbG93LXNpemU6IDAgMCAwIDAsXG4gIGJ0bi1oZXJvLWJvcmRlci1yYWRpdXM6IGJ0bi1ib3JkZXItcmFkaXVzLFxuXG4gIGNhcmQtc2hhZG93OiBub25lLFxuICBjYXJkLWJvcmRlci13aWR0aDogMXB4LFxuICBjYXJkLWJvcmRlci1jb2xvcjogYm9yZGVyLWNvbG9yLFxuICBjYXJkLWhlYWRlci1ib3JkZXItd2lkdGg6IDAsXG5cbiAgbGluay1jb2xvcjogIzVkY2ZlMyxcbiAgbGluay1jb2xvci1ob3ZlcjogIzdkY2ZlMyxcbiAgbGluay1jb2xvci12aXNpdGVkOiBsaW5rLWNvbG9yLFxuXG4gIGFjdGlvbnMtc2VwYXJhdG9yOiAjZjFmNGY1LFxuXG4gIG1vZGFsLXNlcGFyYXRvcjogYm9yZGVyLWNvbG9yLFxuXG4gIHRhYnMtc2VsZWN0ZWQ6IGNvbG9yLXByaW1hcnksXG4gIHRhYnMtc2VsZWN0ZWQtc2Vjb25kLWNvbG9yOiBjb2xvci1wcmltYXJ5LFxuICB0YWJzLXNlcGFyYXRvcjogI2ViZWNlZSxcblxuICBzbWFydC10YWJsZS1wYWdpbmctYmctYWN0aXZlOiBjb2xvci1wcmltYXJ5LFxuXG4gIHJvdXRlLXRhYnMtc2VsZWN0ZWQ6IGNvbG9yLXByaW1hcnksXG5cbiAgcG9wb3Zlci1ib3JkZXI6IGNvbG9yLXByaW1hcnksXG5cbiAgZm9vdGVyLXNoYWRvdzogbm9uZSxcbiAgZm9vdGVyLXNlcGFyYXRvcjogYm9yZGVyLWNvbG9yLFxuICBmb290ZXItZmctaGlnaGxpZ2h0OiAjMmEyYTJhLFxuXG4gIGNhbGVuZGFyLXRvZGF5LWl0ZW0tYmc6ICNhMmIyYzcsXG4gIGNhbGVuZGFyLWFjdGl2ZS1pdGVtLWJnOiBjb2xvci1wcmltYXJ5LFxuICBjYWxlbmRhci1yYW5nZS1iZy1pbi1yYW5nZTogI2UzZWNmZSxcbiAgY2FsZW5kYXItdG9kYXktZmc6IGNvbG9yLXdoaXRlLFxuXG4gIHRvYXN0ci1pY29uLXJhZGl1czogcmFkaXVzLFxuXG4gIGRhdGVwaWNrZXItYm9yZGVyOiBjb2xvci1wcmltYXJ5LFxuKTtcblxuLy8gcmVnaXN0ZXIgdGhlIHRoZW1lXG4kbmItdGhlbWVzOiBuYi1yZWdpc3Rlci10aGVtZSgkdGhlbWUsIGNvcnBvcmF0ZSwgZGVmYXVsdCk7XG4iLCIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWt2ZW8uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICovXG5cbiRncmlkLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuJGdyaWQtZ3V0dGVyLXdpZHRoLWJhc2U6IDI0cHggIWRlZmF1bHQ7XG4kZ3JpZC1ndXR0ZXItd2lkdGhzOiAoXG4gIHhzOiAkZ3JpZC1ndXR0ZXItd2lkdGgtYmFzZSxcbiAgc206ICRncmlkLWd1dHRlci13aWR0aC1iYXNlLFxuICBtZDogJGdyaWQtZ3V0dGVyLXdpZHRoLWJhc2UsXG4gIGxnOiAkZ3JpZC1ndXR0ZXItd2lkdGgtYmFzZSxcbiAgeGw6ICRncmlkLWd1dHRlci13aWR0aC1iYXNlXG4pICFkZWZhdWx0O1xuXG5cbiRncmlkLWJyZWFrcG9pbnRzOiAoXG4gIHhzOiAwLFxuICBpczogNDAwcHgsXG4gIHNtOiA1NzZweCxcbiAgbWQ6IDc2OHB4LFxuICBsZzogOTkycHgsXG4gIHhsOiAxMjAwcHgsXG4gIHh4bDogMTQwMHB4LFxuICB4eHhsOiAxNjAwcHhcbik7XG5cbiRjb250YWluZXItbWF4LXdpZHRoczogKFxuICBpczogMzgwcHgsXG4gIHNtOiA1NDBweCxcbiAgbWQ6IDcyMHB4LFxuICBsZzogOTYwcHgsXG4gIHhsOiAxMTQwcHgsXG4gIHh4bDogMTMyMHB4LFxuICB4eHhsOiAxNTAwcHhcbik7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XG59XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEByZXR1cm4gaWYoJG5leHQsIGJyZWFrcG9pbnQtbWluKCRuZXh0LCAkYnJlYWtwb2ludHMpIC0gMC4wMnB4LCBudWxsKTtcbn1cblxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1pbiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uLy4uL3N0eWxlcy90aGVtZXMnO1xuQGltcG9ydCAnfmJvb3RzdHJhcC9zY3NzL21peGlucy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd+QG5lYnVsYXIvdGhlbWUvc3R5bGVzL2dsb2JhbC9icmVha3BvaW50cyc7XG5cbkBpbmNsdWRlIG5iLWluc3RhbGwtY29tcG9uZW50KCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHdpZHRoOiAxMDAlO1xuXG4gIC5sZWZ0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG9yZGVyOiAwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIH1cblxuICAucmlnaHQge1xuICAgIG9yZGVyOiAxO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgfVxuXG4gIC5sb2dvLWNvbnRhaW50ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogY2FsYygje25iLXRoZW1lKHNpZGViYXItd2lkdGgpfSAtICN7bmItdGhlbWUoaGVhZGVyLXBhZGRpbmcpfSk7XG4gIH1cblxuICAuY29udHJvbC1pdGVtIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5oZWFkZXItY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IGF1dG87XG5cbiAgICAubmF2aWdhdGlvbiB7XG4gICAgICBAaW5jbHVkZSBuYi1sdHIocGFkZGluZy1yaWdodCwgbmItdGhlbWUocGFkZGluZykpO1xuICAgICAgQGluY2x1ZGUgbmItcnRsKHBhZGRpbmctbGVmdCwgbmItdGhlbWUocGFkZGluZykpO1xuICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgIGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgIH1cblxuICAgIC5sb2dvIHtcbiAgICAgIHBhZGRpbmc6IDAgbmItdGhlbWUocGFkZGluZyk7XG4gICAgICBmb250LXNpemU6IDEuNzVyZW07XG4gICAgICBmb250LXdlaWdodDogbmItdGhlbWUoZm9udC13ZWlnaHQtYm9sZGVyKTtcbiAgICAgIEBpbmNsdWRlIG5iLWx0cihib3JkZXItbGVmdCwgMXB4IHNvbGlkIG5iLXRoZW1lKHNlcGFyYXRvcikpO1xuICAgICAgQGluY2x1ZGUgbmItcnRsKGJvcmRlci1yaWdodCwgMXB4IHNvbGlkIG5iLXRoZW1lKHNlcGFyYXRvcikpO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBuYi10aGVtZShmb250LXdlaWdodC1ub3JtYWwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG5iLWZvci10aGVtZShjb3Jwb3JhdGUpIHtcbiAgICAkbWVudS1hY3Rpb24tc2VwYXJhdG9yLWNvbG9yOiAjM2Y0NTUwO1xuXG4gICAgbmItYWN0aW9uIHtcbiAgICAgIEBpbmNsdWRlIG5iLWx0cihib3JkZXItbGVmdC1jb2xvciwgJG1lbnUtYWN0aW9uLXNlcGFyYXRvci1jb2xvcik7XG4gICAgICBAaW5jbHVkZSBuYi1ydGwoYm9yZGVyLXJpZ2h0LWNvbG9yLCAkbWVudS1hY3Rpb24tc2VwYXJhdG9yLWNvbG9yKTtcbiAgICB9XG5cbiAgICAuaGVhZGVyLWNvbnRhaW5lciAubG9nbyB7XG4gICAgICBAaW5jbHVkZSBuYi1sdHIoYm9yZGVyLCBub25lKTtcbiAgICAgIEBpbmNsdWRlIG5iLXJ0bChib3JkZXIsIG5vbmUpO1xuICAgIH1cblxuICAgIC5oZWFkZXItY29udGFpbmVyIC9kZWVwLyBuZ3gtdGhlbWUtc3dpdGNoZXIgLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgICBjb2xvcjogbmItdGhlbWUoY29sb3Itd2hpdGUpO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG5cbiAgbmd4LWxheW91dC1kaXJlY3Rpb24tc3dpdGNoZXIge1xuICAgIG1hcmdpbjogMCAxLjVyZW07XG4gIH1cblxuICBuZ3gtdGhlbWUtc3dpdGNoZXIge1xuICAgIG1hcmdpbjogbmItdGhlbWUobGF5b3V0LXBhZGRpbmcpO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bih4bCkge1xuICAgIG5neC1sYXlvdXQtZGlyZWN0aW9uLXN3aXRjaGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLnRvZ2dsZS1sYXlvdXQgL2RlZXAvIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIGkge1xuICAgICAgY29sb3I6IG5iLXRoZW1lKGNvbG9yLWZnLWhpZ2hsaWdodCk7XG4gICAgICBmb250LXNpemU6IDIuMjVyZW07XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBhbmltYXRpb24tbmFtZTogcHVsc2UtbGlnaHQ7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICAvLyBoYWNrIHRvIGJlIGFibGUgdG8gc2V0IGJvcmRlci1yYWRpdXNcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL3lINUJBRUFBQUFBTEFBQUFBQUJBQUVBQUFJQlJBQTcnKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTIuMyU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAxMyU7XG4gICAgICAgIGhlaWdodDogMTMlO1xuXG4gICAgICAgIGFuaW1hdGlvbjogM3MgbGluZWFyIGluZmluaXRlIHB1bHNlO1xuXG4gICAgICAgIEBpbmNsdWRlIG5iLWZvci10aGVtZShkZWZhdWx0KSB7XG4gICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHB1bHNlLWxpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUga2V5ZnJhbWVzKHB1bHNlKSB7XG4gICAgMCUge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDFweCAwIHJnYmEobmItdGhlbWUoY29sb3ItZmctaGlnaGxpZ2h0KSwgMCk7XG4gICAgfVxuXG4gICAgMjAlIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAzcHggMTBweCByZ2JhKG5iLXRoZW1lKGNvbG9yLWZnLWhpZ2hsaWdodCksIDAuNCk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgNXB4IDIwcHggcmdiYShuYi10aGVtZShjb2xvci1mZy1oaWdobGlnaHQpLCAwKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBrZXlmcmFtZXMocHVsc2UtbGlnaHQpIHtcbiAgICAwJSB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMXB4IDAgcmdiYSgxMTUsIDI1NSwgMjA4LCAwKTtcbiAgICB9XG5cbiAgICAyMCUge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDNweCAxMHB4IHJnYmEoMTE1LCAyNTUsIDIwOCwgMC40KTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMjBweCByZ2JhKDExNSwgMjU1LCAyMDgsIDApO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xuXG4gICAgbmItYWN0aW9uOm5vdCgudG9nZ2xlLWxheW91dCkge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cblxuICAgIC5jb250cm9sLWl0ZW0ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAudG9nZ2xlLWxheW91dCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIG5neC1sYXlvdXQtZGlyZWN0aW9uLXN3aXRjaGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgbmd4LXRoZW1lLXN3aXRjaGVyIHtcbiAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHNtKSB7XG5cbiAgICBuYi11c2VyIC9kZWVwLyAudXNlci1uYW1lIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKGlzKSB7XG5cbiAgICAuaGVhZGVyLWNvbnRhaW5lciB7XG4gICAgICAubG9nbyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudG9nZ2xlLWxheW91dCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIG5neC10aGVtZS1zd2l0Y2hlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIG5iLWFjdGlvbjpub3QoLnRvZ2dsZS1sYXlvdXQpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHhzKSB7XG4gICAgLnJpZ2h0IC9kZWVwLyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4ubG9nby1jb250YWludGVyIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLmxvZ28tY29udGFpbnRlciAudGhlbWVzLXN3aXRjaGVyIHNwYW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMTlweDtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogIzY4YjkyZTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWxlZnQ6IC0ycHg7XG59XG5cbm5hdi5maXhlZCB7XG4gIGhlaWdodDogNTJweCAhaW1wb3J0YW50O1xufVxuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuLyoqXG4gKiBUaGlzIGlzIGEgc3RhcnRpbmcgcG9pbnQgd2hlcmUgd2UgZGVjbGFyZSB0aGUgbWFwcyBvZiB0aGVtZXMgYW5kIGdsb2JhbGx5IGF2YWlsYWJsZSBmdW5jdGlvbnMvbWl4aW5zXG4gKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbi8qKlxuICogVGhpcyBtaXhpbiBnZW5lcmF0ZXMga2V5ZmFtZXMuXG4gKiBCZWNhdXNlIG9mIGFsbCBrZXlmcmFtZXMgY2FuJ3QgYmUgc2NvcGVkLFxuICogd2UgbmVlZCB0byBwdXRzIHVuaXF1ZSBuYW1lIGluIGVhY2ggYnRuLXB1bHNlIGNhbGwuXG4gKi9cbi8qXG5cbkFjY29yZGluZyB0byB0aGUgc3BlY2lmaWNhdGlvbiAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1zY29waW5nLTEvI2hvc3Qtc2VsZWN0b3IpXG46aG9zdCBhbmQgOmhvc3QtY29udGV4dCBhcmUgcHNldWRvLWNsYXNzZXMuIFNvIHdlIGFzc3VtZSB0aGV5IGNvdWxkIGJlIGNvbWJpbmVkLFxubGlrZSBvdGhlciBwc2V1ZG8tY2xhc3NlcywgZXZlbiBzYW1lIG9uZXMuXG5Gb3IgZXhhbXBsZTogJzpudGgtb2YtdHlwZSgybik6bnRoLW9mLXR5cGUoZXZlbiknLlxuXG5JZGVhbCBzb2x1dGlvbiB3b3VsZCBiZSB0byBwcmVwZW5kIGFueSBzZWxlY3RvciB3aXRoIDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKS5cblRoZW4gbmVidWxhciBjb21wb25lbnRzIHdpbGwgYmVoYXZlIGFzIGFuIGh0bWwgZWxlbWVudCBhbmQgcmVzcG9uZCB0byBbZGlyXSBhdHRyaWJ1dGUgb24gYW55IGxldmVsLFxuc28gZGlyZWN0aW9uIGNvdWxkIGJlIG92ZXJyaWRkZW4gb24gYW55IGNvbXBvbmVudCBsZXZlbC5cblxuSW1wbGVtZW50YXRpb24gY29kZTpcblxuQG1peGluIG5iLXJ0bCgpIHtcbiAgLy8gYWRkICMgdG8gc2NzcyBpbnRlcnBvbGF0aW9uIHN0YXRlbWVudC5cbiAgLy8gaXQgd29ya3MgaW4gY29tbWVudHMgYW5kIHdlIGNhbid0IHVzZSBpdCBoZXJlXG4gIEBhdC1yb290IHtzZWxlY3Rvci1hcHBlbmQoJzpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKScsICYpfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQW5kIHdoZW4gd2UgY2FsbCBpdCBzb21ld2hlcmU6XG5cbjpob3N0IHtcbiAgLnNvbWUtY2xhc3Mge1xuICAgIEBpbmNsdWRlIG5iLXJ0bCgpIHtcbiAgICAgIC4uLlxuICAgIH1cbiAgfVxufVxuOmhvc3QtY29udGV4dCguLi4pIHtcbiAgLnNvbWUtY2xhc3Mge1xuICAgIEBpbmNsdWRlIG5iLXJ0bCgpIHtcbiAgICAgIC4uLlxuICAgIH1cbiAgfVxufVxuXG5SZXN1bHQgd2lsbCBsb29rIGxpa2U6XG5cbjpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0IC5zb21lLWNsYXNzIHtcbiAgLi4uXG59XG46aG9zdC1jb250ZXh0KFtkaXI9cnRsXSk6aG9zdC1jb250ZXh0KC4uLikgLnNvbWUtY2xhc3Mge1xuICAuLi5cbn1cblxuKlxuICBTaWRlIG5vdGU6XG4gIDpob3N0LWNvbnRleHQoKTpob3N0IHNlbGVjdG9yIGFyZSB2YWxpZC4gaHR0cHM6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1zdHlsZS8yMDE1RmViLzAzMDUuaHRtbFxuXG4gIDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0LWNvbnRleHQoLi4uKSBzaG91bGQgbWF0Y2ggYW55IHBlcm11dGF0aW9uLFxuICBzbyBvcmRlciBpcyBub3QgaW1wb3J0YW50LlxuKlxuXG5cbkN1cnJlbnRseSwgdGhlcmUncmUgdHdvIHByb2JsZW1zIHdpdGggdGhpcyBhcHByb2FjaDpcblxuRmlyc3QsIGlzIHRoYXQgd2UgY2FuJ3QgY29tYmluZSA6aG9zdCwgOmhvc3QtY29udGV4dC4gQW5ndWxhciBidWdzICMxNDM0OSwgIzE5MTk5LlxuRm9yIHRoZSBtb21lbnQgb2Ygd3JpdGluZywgdGhlIG9ubHkgcG9zc2libGUgd2F5IGlzOlxuOmhvc3Qge1xuICA6aG9zdC1jb250ZXh0KC4uLikge1xuICAgIC4uLlxuICB9XG59XG5JdCBkb2Vzbid0IHdvcmsgZm9yIHVzIGJlY2F1c2UgbWl4aW4gY291bGQgYmUgY2FsbGVkIHNvbWV3aGVyZSBkZWVwZXIsIGxpa2U6XG46aG9zdCB7XG4gIHAge1xuICAgIEBpbmNsdWRlIG5iLXJ0bCgpIHsgLi4uIH1cbiAgfVxufVxuV2UgYXJlIG5vdCBhYmxlIHRvIGdvIHVwIHRvIDpob3N0IGxldmVsIHRvIHBsYWNlIGNvbnRlbnQgcGFzc2VkIHRvIG1peGluLlxuXG5UaGUgc2Vjb25kIHByb2JsZW0gaXMgdGhhdCB3ZSBvbmx5IGNhbiBiZSBzdXJlIHRoYXQgd2UgYXBwZW5kaW5nIDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKSB0byBhbm90aGVyXG46aG9zdC86aG9zdC1jb250ZXh0IHBzZXVkby1jbGFzcyB3aGVuIGNhbGxlZCBpbiB0aGVtZSBmaWxlcyAoKi50aGVtZS5zY3NzKS5cbiAgKlxuICAgIFNpZGUgbm90ZTpcbiAgICBDdXJyZW50bHksIG5iLWluc3RhbGwtY29tcG9uZW50IHVzZXMgYW5vdGhlciBhcHByb2FjaCB3aGVyZSA6aG9zdCBwcmVwZW5kZWQgd2l0aCB0aGUgdGhlbWUgbmFtZVxuICAgIChodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvNWI5NjA3ODYyNGIwYTQ3NjBmMmRiY2Y2ZmRmMGJkNjI3OTFiZTViYi9wYWNrYWdlcy9jb21waWxlci9zcmMvc2hhZG93X2Nzcy50cyNMNDQxKSxcbiAgICBidXQgaXQgd2FzIG1hZGUgdG8gYmUgYWJsZSB0byB1c2UgY3VycmVudCByZWFsaXphdGlvbiBvZiBydGwgYW5kIGl0IGNhbiBiZSByZXdyaXR0ZW4gYmFjayB0b1xuICAgIDpob3N0LWNvbnRleHQoJHRoZW1lKSBvbmNlIHdlIHdpbGwgYmUgYWJsZSB0byB1c2UgbXVsdGlwbGUgc2hhZG93IHNlbGVjdG9ycy5cbiAgKlxuQnV0IHdoZW4gaXQncyBjYWxsZWQgaW4gKi5jb21wb25lbnQuc2NzcyB3ZSBjYW4ndCBiZSBzdXJlLCB0aGF0IHNlbGVjdG9yIHN0YXJ0cyB3aXRoIDpob3N0Lzpob3N0LWNvbnRleHQsXG5iZWNhdXNlIGFuZ3VsYXIgYWxsb3dzIG9taXR0aW5nIHBzZXVkby1jbGFzc2VzIGlmIHdlIGRvbid0IG5lZWQgdG8gc3R5bGUgOmhvc3QgY29tcG9uZW50IGl0c2VsZi5cbldlIGNhbiBicmVhayBzdWNoIHNlbGVjdG9ycywgYnkganVzdCBhcHBlbmRpbmcgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHRvIHRoZW0uXG4gICoqKlxuICAgIFBvc3NpYmxlIHNvbHV0aW9uXG4gICAgY2hlY2sgaWYgd2UgaW4gdGhlbWUgYnkgc29tZSB0aGVtZSB2YXJpYWJsZXMgYW5kIGlmIHNvIGFwcGVuZCwgb3RoZXJ3aXNlIG5lc3QgbGlrZVxuICAgIEBhdC1yb290IDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKSB7XG4gICAgICAvLyBhZGQgIyB0byBzY3NzIGludGVycG9sYXRpb24gc3RhdGVtZW50LlxuICAgICAgLy8gaXQgd29ya3MgaW4gY29tbWVudHMgYW5kIHdlIGNhbid0IHVzZSBpdCBoZXJlXG4gICAgICB7Jn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgV2hhdCBpZiA6aG9zdCBzcGVjaWZpZWQ/IENhbiB3ZSBhZGQgc3BhY2UgaW4gOmhvc3QtY29udGV4dCguLi4pIDpob3N0P1xuICAgIE9yIG1heWJlIGFkZCA6aG9zdCBzZWxlY3RvciBhbnl3YXk/IElmIG11bHRpcGxlIDpob3N0IHNlbGVjdG9ycyBhcmUgYWxsb3dlZFxuICAqKipcblxuXG5Qcm9ibGVtcyB3aXRoIHRoZSBjdXJyZW50IGFwcHJvYWNoLlxuXG4xLiBEaXJlY3Rpb24gY2FuIGJlIGFwcGxpZWQgb25seSBvbiBkb2N1bWVudCBsZXZlbCwgYmVjYXVzZSBtaXhpbiBwcmVwZW5kcyB0aGVtZSBjbGFzcyxcbndoaWNoIHBsYWNlZCBvbiB0aGUgYm9keS5cbjIuICouY29tcG9uZW50LnNjc3Mgc3R5bGVzIHNob3VsZCBiZSBpbiA6aG9zdCBzZWxlY3Rvci4gT3RoZXJ3aXNlIGFuZ3VsYXIgd2lsbCBhZGQgaG9zdFxuYXR0cmlidXRlIHRvIFtkaXI9cnRsXSBhdHRyaWJ1dGUgYXMgd2VsbC5cblxuXG5HZW5lcmFsIHByb2JsZW1zLlxuXG5MdHIgaXMgZGVmYXVsdCBkb2N1bWVudCBkaXJlY3Rpb24sIGJ1dCBmb3IgcHJvcGVyIHdvcmsgb2YgbmItbHRyIChtZWFucyBsdHIgb25seSksXG5bZGlyPWx0cl0gc2hvdWxkIGJlIHNwZWNpZmllZCBhdCBsZWFzdCBzb21ld2hlcmUuICc6bm90KFtkaXI9cnRsXScgbm90IGFwcGxpY2FibGUgaGVyZSxcbmJlY2F1c2UgaXQncyBzYXRpc2Z5IGFueSBwYXJlbnQsIHRoYXQgZG9uJ3QgaGF2ZSBbZGlyPXJ0bF0gYXR0cmlidXRlLlxuUHJldmlvdXMgYXBwcm9hY2ggd2FzIHRvIHVzZSBzaW5nbGUgcnRsIG1peGluIGFuZCByZXNldCBsdHIgcHJvcGVydGllcyB0byBpbml0aWFsIHZhbHVlLlxuQnV0IHNvbWV0aW1lcyBpdCdzIGhhcmQgdG8gZmluZCwgd2hhdCB0aGUgcHJldmlvdXMgdmFsdWUgc2hvdWxkIGJlLiBBbmQgc3VjaCBtaXhpbiBjYWxsIGxvb2tzIHRvbyB2ZXJib3NlLlxuKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbi8qKlxuICogVGhpcyBtaXhpbiBnZW5lcmF0ZXMga2V5ZmFtZXMuXG4gKiBCZWNhdXNlIG9mIGFsbCBrZXlmcmFtZXMgY2FuJ3QgYmUgc2NvcGVkLFxuICogd2UgbmVlZCB0byBwdXRzIHVuaXF1ZSBuYW1lIGluIGVhY2ggYnRuLXB1bHNlIGNhbGwuXG4gKi9cbi8qXG5cbkFjY29yZGluZyB0byB0aGUgc3BlY2lmaWNhdGlvbiAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1zY29waW5nLTEvI2hvc3Qtc2VsZWN0b3IpXG46aG9zdCBhbmQgOmhvc3QtY29udGV4dCBhcmUgcHNldWRvLWNsYXNzZXMuIFNvIHdlIGFzc3VtZSB0aGV5IGNvdWxkIGJlIGNvbWJpbmVkLFxubGlrZSBvdGhlciBwc2V1ZG8tY2xhc3NlcywgZXZlbiBzYW1lIG9uZXMuXG5Gb3IgZXhhbXBsZTogJzpudGgtb2YtdHlwZSgybik6bnRoLW9mLXR5cGUoZXZlbiknLlxuXG5JZGVhbCBzb2x1dGlvbiB3b3VsZCBiZSB0byBwcmVwZW5kIGFueSBzZWxlY3RvciB3aXRoIDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKS5cblRoZW4gbmVidWxhciBjb21wb25lbnRzIHdpbGwgYmVoYXZlIGFzIGFuIGh0bWwgZWxlbWVudCBhbmQgcmVzcG9uZCB0byBbZGlyXSBhdHRyaWJ1dGUgb24gYW55IGxldmVsLFxuc28gZGlyZWN0aW9uIGNvdWxkIGJlIG92ZXJyaWRkZW4gb24gYW55IGNvbXBvbmVudCBsZXZlbC5cblxuSW1wbGVtZW50YXRpb24gY29kZTpcblxuQG1peGluIG5iLXJ0bCgpIHtcbiAgLy8gYWRkICMgdG8gc2NzcyBpbnRlcnBvbGF0aW9uIHN0YXRlbWVudC5cbiAgLy8gaXQgd29ya3MgaW4gY29tbWVudHMgYW5kIHdlIGNhbid0IHVzZSBpdCBoZXJlXG4gIEBhdC1yb290IHtzZWxlY3Rvci1hcHBlbmQoJzpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKScsICYpfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQW5kIHdoZW4gd2UgY2FsbCBpdCBzb21ld2hlcmU6XG5cbjpob3N0IHtcbiAgLnNvbWUtY2xhc3Mge1xuICAgIEBpbmNsdWRlIG5iLXJ0bCgpIHtcbiAgICAgIC4uLlxuICAgIH1cbiAgfVxufVxuOmhvc3QtY29udGV4dCguLi4pIHtcbiAgLnNvbWUtY2xhc3Mge1xuICAgIEBpbmNsdWRlIG5iLXJ0bCgpIHtcbiAgICAgIC4uLlxuICAgIH1cbiAgfVxufVxuXG5SZXN1bHQgd2lsbCBsb29rIGxpa2U6XG5cbjpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0IC5zb21lLWNsYXNzIHtcbiAgLi4uXG59XG46aG9zdC1jb250ZXh0KFtkaXI9cnRsXSk6aG9zdC1jb250ZXh0KC4uLikgLnNvbWUtY2xhc3Mge1xuICAuLi5cbn1cblxuKlxuICBTaWRlIG5vdGU6XG4gIDpob3N0LWNvbnRleHQoKTpob3N0IHNlbGVjdG9yIGFyZSB2YWxpZC4gaHR0cHM6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1zdHlsZS8yMDE1RmViLzAzMDUuaHRtbFxuXG4gIDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0LWNvbnRleHQoLi4uKSBzaG91bGQgbWF0Y2ggYW55IHBlcm11dGF0aW9uLFxuICBzbyBvcmRlciBpcyBub3QgaW1wb3J0YW50LlxuKlxuXG5cbkN1cnJlbnRseSwgdGhlcmUncmUgdHdvIHByb2JsZW1zIHdpdGggdGhpcyBhcHByb2FjaDpcblxuRmlyc3QsIGlzIHRoYXQgd2UgY2FuJ3QgY29tYmluZSA6aG9zdCwgOmhvc3QtY29udGV4dC4gQW5ndWxhciBidWdzICMxNDM0OSwgIzE5MTk5LlxuRm9yIHRoZSBtb21lbnQgb2Ygd3JpdGluZywgdGhlIG9ubHkgcG9zc2libGUgd2F5IGlzOlxuOmhvc3Qge1xuICA6aG9zdC1jb250ZXh0KC4uLikge1xuICAgIC4uLlxuICB9XG59XG5JdCBkb2Vzbid0IHdvcmsgZm9yIHVzIGJlY2F1c2UgbWl4aW4gY291bGQgYmUgY2FsbGVkIHNvbWV3aGVyZSBkZWVwZXIsIGxpa2U6XG46aG9zdCB7XG4gIHAge1xuICAgIEBpbmNsdWRlIG5iLXJ0bCgpIHsgLi4uIH1cbiAgfVxufVxuV2UgYXJlIG5vdCBhYmxlIHRvIGdvIHVwIHRvIDpob3N0IGxldmVsIHRvIHBsYWNlIGNvbnRlbnQgcGFzc2VkIHRvIG1peGluLlxuXG5UaGUgc2Vjb25kIHByb2JsZW0gaXMgdGhhdCB3ZSBvbmx5IGNhbiBiZSBzdXJlIHRoYXQgd2UgYXBwZW5kaW5nIDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKSB0byBhbm90aGVyXG46aG9zdC86aG9zdC1jb250ZXh0IHBzZXVkby1jbGFzcyB3aGVuIGNhbGxlZCBpbiB0aGVtZSBmaWxlcyAoKi50aGVtZS5zY3NzKS5cbiAgKlxuICAgIFNpZGUgbm90ZTpcbiAgICBDdXJyZW50bHksIG5iLWluc3RhbGwtY29tcG9uZW50IHVzZXMgYW5vdGhlciBhcHByb2FjaCB3aGVyZSA6aG9zdCBwcmVwZW5kZWQgd2l0aCB0aGUgdGhlbWUgbmFtZVxuICAgIChodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvNWI5NjA3ODYyNGIwYTQ3NjBmMmRiY2Y2ZmRmMGJkNjI3OTFiZTViYi9wYWNrYWdlcy9jb21waWxlci9zcmMvc2hhZG93X2Nzcy50cyNMNDQxKSxcbiAgICBidXQgaXQgd2FzIG1hZGUgdG8gYmUgYWJsZSB0byB1c2UgY3VycmVudCByZWFsaXphdGlvbiBvZiBydGwgYW5kIGl0IGNhbiBiZSByZXdyaXR0ZW4gYmFjayB0b1xuICAgIDpob3N0LWNvbnRleHQoJHRoZW1lKSBvbmNlIHdlIHdpbGwgYmUgYWJsZSB0byB1c2UgbXVsdGlwbGUgc2hhZG93IHNlbGVjdG9ycy5cbiAgKlxuQnV0IHdoZW4gaXQncyBjYWxsZWQgaW4gKi5jb21wb25lbnQuc2NzcyB3ZSBjYW4ndCBiZSBzdXJlLCB0aGF0IHNlbGVjdG9yIHN0YXJ0cyB3aXRoIDpob3N0Lzpob3N0LWNvbnRleHQsXG5iZWNhdXNlIGFuZ3VsYXIgYWxsb3dzIG9taXR0aW5nIHBzZXVkby1jbGFzc2VzIGlmIHdlIGRvbid0IG5lZWQgdG8gc3R5bGUgOmhvc3QgY29tcG9uZW50IGl0c2VsZi5cbldlIGNhbiBicmVhayBzdWNoIHNlbGVjdG9ycywgYnkganVzdCBhcHBlbmRpbmcgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHRvIHRoZW0uXG4gICoqKlxuICAgIFBvc3NpYmxlIHNvbHV0aW9uXG4gICAgY2hlY2sgaWYgd2UgaW4gdGhlbWUgYnkgc29tZSB0aGVtZSB2YXJpYWJsZXMgYW5kIGlmIHNvIGFwcGVuZCwgb3RoZXJ3aXNlIG5lc3QgbGlrZVxuICAgIEBhdC1yb290IDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKSB7XG4gICAgICAvLyBhZGQgIyB0byBzY3NzIGludGVycG9sYXRpb24gc3RhdGVtZW50LlxuICAgICAgLy8gaXQgd29ya3MgaW4gY29tbWVudHMgYW5kIHdlIGNhbid0IHVzZSBpdCBoZXJlXG4gICAgICB7Jn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgV2hhdCBpZiA6aG9zdCBzcGVjaWZpZWQ/IENhbiB3ZSBhZGQgc3BhY2UgaW4gOmhvc3QtY29udGV4dCguLi4pIDpob3N0P1xuICAgIE9yIG1heWJlIGFkZCA6aG9zdCBzZWxlY3RvciBhbnl3YXk/IElmIG11bHRpcGxlIDpob3N0IHNlbGVjdG9ycyBhcmUgYWxsb3dlZFxuICAqKipcblxuXG5Qcm9ibGVtcyB3aXRoIHRoZSBjdXJyZW50IGFwcHJvYWNoLlxuXG4xLiBEaXJlY3Rpb24gY2FuIGJlIGFwcGxpZWQgb25seSBvbiBkb2N1bWVudCBsZXZlbCwgYmVjYXVzZSBtaXhpbiBwcmVwZW5kcyB0aGVtZSBjbGFzcyxcbndoaWNoIHBsYWNlZCBvbiB0aGUgYm9keS5cbjIuICouY29tcG9uZW50LnNjc3Mgc3R5bGVzIHNob3VsZCBiZSBpbiA6aG9zdCBzZWxlY3Rvci4gT3RoZXJ3aXNlIGFuZ3VsYXIgd2lsbCBhZGQgaG9zdFxuYXR0cmlidXRlIHRvIFtkaXI9cnRsXSBhdHRyaWJ1dGUgYXMgd2VsbC5cblxuXG5HZW5lcmFsIHByb2JsZW1zLlxuXG5MdHIgaXMgZGVmYXVsdCBkb2N1bWVudCBkaXJlY3Rpb24sIGJ1dCBmb3IgcHJvcGVyIHdvcmsgb2YgbmItbHRyIChtZWFucyBsdHIgb25seSksXG5bZGlyPWx0cl0gc2hvdWxkIGJlIHNwZWNpZmllZCBhdCBsZWFzdCBzb21ld2hlcmUuICc6bm90KFtkaXI9cnRsXScgbm90IGFwcGxpY2FibGUgaGVyZSxcbmJlY2F1c2UgaXQncyBzYXRpc2Z5IGFueSBwYXJlbnQsIHRoYXQgZG9uJ3QgaGF2ZSBbZGlyPXJ0bF0gYXR0cmlidXRlLlxuUHJldmlvdXMgYXBwcm9hY2ggd2FzIHRvIHVzZSBzaW5nbGUgcnRsIG1peGluIGFuZCByZXNldCBsdHIgcHJvcGVydGllcyB0byBpbml0aWFsIHZhbHVlLlxuQnV0IHNvbWV0aW1lcyBpdCdzIGhhcmQgdG8gZmluZCwgd2hhdCB0aGUgcHJldmlvdXMgdmFsdWUgc2hvdWxkIGJlLiBBbmQgc3VjaCBtaXhpbiBjYWxsIGxvb2tzIHRvbyB2ZXJib3NlLlxuKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbi8qKlxuICogVGhpcyBtaXhpbiBnZW5lcmF0ZXMga2V5ZmFtZXMuXG4gKiBCZWNhdXNlIG9mIGFsbCBrZXlmcmFtZXMgY2FuJ3QgYmUgc2NvcGVkLFxuICogd2UgbmVlZCB0byBwdXRzIHVuaXF1ZSBuYW1lIGluIGVhY2ggYnRuLXB1bHNlIGNhbGwuXG4gKi9cbi8qXG5cbkFjY29yZGluZyB0byB0aGUgc3BlY2lmaWNhdGlvbiAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1zY29waW5nLTEvI2hvc3Qtc2VsZWN0b3IpXG46aG9zdCBhbmQgOmhvc3QtY29udGV4dCBhcmUgcHNldWRvLWNsYXNzZXMuIFNvIHdlIGFzc3VtZSB0aGV5IGNvdWxkIGJlIGNvbWJpbmVkLFxubGlrZSBvdGhlciBwc2V1ZG8tY2xhc3NlcywgZXZlbiBzYW1lIG9uZXMuXG5Gb3IgZXhhbXBsZTogJzpudGgtb2YtdHlwZSgybik6bnRoLW9mLXR5cGUoZXZlbiknLlxuXG5JZGVhbCBzb2x1dGlvbiB3b3VsZCBiZSB0byBwcmVwZW5kIGFueSBzZWxlY3RvciB3aXRoIDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKS5cblRoZW4gbmVidWxhciBjb21wb25lbnRzIHdpbGwgYmVoYXZlIGFzIGFuIGh0bWwgZWxlbWVudCBhbmQgcmVzcG9uZCB0byBbZGlyXSBhdHRyaWJ1dGUgb24gYW55IGxldmVsLFxuc28gZGlyZWN0aW9uIGNvdWxkIGJlIG92ZXJyaWRkZW4gb24gYW55IGNvbXBvbmVudCBsZXZlbC5cblxuSW1wbGVtZW50YXRpb24gY29kZTpcblxuQG1peGluIG5iLXJ0bCgpIHtcbiAgLy8gYWRkICMgdG8gc2NzcyBpbnRlcnBvbGF0aW9uIHN0YXRlbWVudC5cbiAgLy8gaXQgd29ya3MgaW4gY29tbWVudHMgYW5kIHdlIGNhbid0IHVzZSBpdCBoZXJlXG4gIEBhdC1yb290IHtzZWxlY3Rvci1hcHBlbmQoJzpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKScsICYpfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQW5kIHdoZW4gd2UgY2FsbCBpdCBzb21ld2hlcmU6XG5cbjpob3N0IHtcbiAgLnNvbWUtY2xhc3Mge1xuICAgIEBpbmNsdWRlIG5iLXJ0bCgpIHtcbiAgICAgIC4uLlxuICAgIH1cbiAgfVxufVxuOmhvc3QtY29udGV4dCguLi4pIHtcbiAgLnNvbWUtY2xhc3Mge1xuICAgIEBpbmNsdWRlIG5iLXJ0bCgpIHtcbiAgICAgIC4uLlxuICAgIH1cbiAgfVxufVxuXG5SZXN1bHQgd2lsbCBsb29rIGxpa2U6XG5cbjpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0IC5zb21lLWNsYXNzIHtcbiAgLi4uXG59XG46aG9zdC1jb250ZXh0KFtkaXI9cnRsXSk6aG9zdC1jb250ZXh0KC4uLikgLnNvbWUtY2xhc3Mge1xuICAuLi5cbn1cblxuKlxuICBTaWRlIG5vdGU6XG4gIDpob3N0LWNvbnRleHQoKTpob3N0IHNlbGVjdG9yIGFyZSB2YWxpZC4gaHR0cHM6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1zdHlsZS8yMDE1RmViLzAzMDUuaHRtbFxuXG4gIDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0LWNvbnRleHQoLi4uKSBzaG91bGQgbWF0Y2ggYW55IHBlcm11dGF0aW9uLFxuICBzbyBvcmRlciBpcyBub3QgaW1wb3J0YW50LlxuKlxuXG5cbkN1cnJlbnRseSwgdGhlcmUncmUgdHdvIHByb2JsZW1zIHdpdGggdGhpcyBhcHByb2FjaDpcblxuRmlyc3QsIGlzIHRoYXQgd2UgY2FuJ3QgY29tYmluZSA6aG9zdCwgOmhvc3QtY29udGV4dC4gQW5ndWxhciBidWdzICMxNDM0OSwgIzE5MTk5LlxuRm9yIHRoZSBtb21lbnQgb2Ygd3JpdGluZywgdGhlIG9ubHkgcG9zc2libGUgd2F5IGlzOlxuOmhvc3Qge1xuICA6aG9zdC1jb250ZXh0KC4uLikge1xuICAgIC4uLlxuICB9XG59XG5JdCBkb2Vzbid0IHdvcmsgZm9yIHVzIGJlY2F1c2UgbWl4aW4gY291bGQgYmUgY2FsbGVkIHNvbWV3aGVyZSBkZWVwZXIsIGxpa2U6XG46aG9zdCB7XG4gIHAge1xuICAgIEBpbmNsdWRlIG5iLXJ0bCgpIHsgLi4uIH1cbiAgfVxufVxuV2UgYXJlIG5vdCBhYmxlIHRvIGdvIHVwIHRvIDpob3N0IGxldmVsIHRvIHBsYWNlIGNvbnRlbnQgcGFzc2VkIHRvIG1peGluLlxuXG5UaGUgc2Vjb25kIHByb2JsZW0gaXMgdGhhdCB3ZSBvbmx5IGNhbiBiZSBzdXJlIHRoYXQgd2UgYXBwZW5kaW5nIDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKSB0byBhbm90aGVyXG46aG9zdC86aG9zdC1jb250ZXh0IHBzZXVkby1jbGFzcyB3aGVuIGNhbGxlZCBpbiB0aGVtZSBmaWxlcyAoKi50aGVtZS5zY3NzKS5cbiAgKlxuICAgIFNpZGUgbm90ZTpcbiAgICBDdXJyZW50bHksIG5iLWluc3RhbGwtY29tcG9uZW50IHVzZXMgYW5vdGhlciBhcHByb2FjaCB3aGVyZSA6aG9zdCBwcmVwZW5kZWQgd2l0aCB0aGUgdGhlbWUgbmFtZVxuICAgIChodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvNWI5NjA3ODYyNGIwYTQ3NjBmMmRiY2Y2ZmRmMGJkNjI3OTFiZTViYi9wYWNrYWdlcy9jb21waWxlci9zcmMvc2hhZG93X2Nzcy50cyNMNDQxKSxcbiAgICBidXQgaXQgd2FzIG1hZGUgdG8gYmUgYWJsZSB0byB1c2UgY3VycmVudCByZWFsaXphdGlvbiBvZiBydGwgYW5kIGl0IGNhbiBiZSByZXdyaXR0ZW4gYmFjayB0b1xuICAgIDpob3N0LWNvbnRleHQoJHRoZW1lKSBvbmNlIHdlIHdpbGwgYmUgYWJsZSB0byB1c2UgbXVsdGlwbGUgc2hhZG93IHNlbGVjdG9ycy5cbiAgKlxuQnV0IHdoZW4gaXQncyBjYWxsZWQgaW4gKi5jb21wb25lbnQuc2NzcyB3ZSBjYW4ndCBiZSBzdXJlLCB0aGF0IHNlbGVjdG9yIHN0YXJ0cyB3aXRoIDpob3N0Lzpob3N0LWNvbnRleHQsXG5iZWNhdXNlIGFuZ3VsYXIgYWxsb3dzIG9taXR0aW5nIHBzZXVkby1jbGFzc2VzIGlmIHdlIGRvbid0IG5lZWQgdG8gc3R5bGUgOmhvc3QgY29tcG9uZW50IGl0c2VsZi5cbldlIGNhbiBicmVhayBzdWNoIHNlbGVjdG9ycywgYnkganVzdCBhcHBlbmRpbmcgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHRvIHRoZW0uXG4gICoqKlxuICAgIFBvc3NpYmxlIHNvbHV0aW9uXG4gICAgY2hlY2sgaWYgd2UgaW4gdGhlbWUgYnkgc29tZSB0aGVtZSB2YXJpYWJsZXMgYW5kIGlmIHNvIGFwcGVuZCwgb3RoZXJ3aXNlIG5lc3QgbGlrZVxuICAgIEBhdC1yb290IDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKSB7XG4gICAgICAvLyBhZGQgIyB0byBzY3NzIGludGVycG9sYXRpb24gc3RhdGVtZW50LlxuICAgICAgLy8gaXQgd29ya3MgaW4gY29tbWVudHMgYW5kIHdlIGNhbid0IHVzZSBpdCBoZXJlXG4gICAgICB7Jn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgV2hhdCBpZiA6aG9zdCBzcGVjaWZpZWQ/IENhbiB3ZSBhZGQgc3BhY2UgaW4gOmhvc3QtY29udGV4dCguLi4pIDpob3N0P1xuICAgIE9yIG1heWJlIGFkZCA6aG9zdCBzZWxlY3RvciBhbnl3YXk/IElmIG11bHRpcGxlIDpob3N0IHNlbGVjdG9ycyBhcmUgYWxsb3dlZFxuICAqKipcblxuXG5Qcm9ibGVtcyB3aXRoIHRoZSBjdXJyZW50IGFwcHJvYWNoLlxuXG4xLiBEaXJlY3Rpb24gY2FuIGJlIGFwcGxpZWQgb25seSBvbiBkb2N1bWVudCBsZXZlbCwgYmVjYXVzZSBtaXhpbiBwcmVwZW5kcyB0aGVtZSBjbGFzcyxcbndoaWNoIHBsYWNlZCBvbiB0aGUgYm9keS5cbjIuICouY29tcG9uZW50LnNjc3Mgc3R5bGVzIHNob3VsZCBiZSBpbiA6aG9zdCBzZWxlY3Rvci4gT3RoZXJ3aXNlIGFuZ3VsYXIgd2lsbCBhZGQgaG9zdFxuYXR0cmlidXRlIHRvIFtkaXI9cnRsXSBhdHRyaWJ1dGUgYXMgd2VsbC5cblxuXG5HZW5lcmFsIHByb2JsZW1zLlxuXG5MdHIgaXMgZGVmYXVsdCBkb2N1bWVudCBkaXJlY3Rpb24sIGJ1dCBmb3IgcHJvcGVyIHdvcmsgb2YgbmItbHRyIChtZWFucyBsdHIgb25seSksXG5bZGlyPWx0cl0gc2hvdWxkIGJlIHNwZWNpZmllZCBhdCBsZWFzdCBzb21ld2hlcmUuICc6bm90KFtkaXI9cnRsXScgbm90IGFwcGxpY2FibGUgaGVyZSxcbmJlY2F1c2UgaXQncyBzYXRpc2Z5IGFueSBwYXJlbnQsIHRoYXQgZG9uJ3QgaGF2ZSBbZGlyPXJ0bF0gYXR0cmlidXRlLlxuUHJldmlvdXMgYXBwcm9hY2ggd2FzIHRvIHVzZSBzaW5nbGUgcnRsIG1peGluIGFuZCByZXNldCBsdHIgcHJvcGVydGllcyB0byBpbml0aWFsIHZhbHVlLlxuQnV0IHNvbWV0aW1lcyBpdCdzIGhhcmQgdG8gZmluZCwgd2hhdCB0aGUgcHJldmlvdXMgdmFsdWUgc2hvdWxkIGJlLiBBbmQgc3VjaCBtaXhpbiBjYWxsIGxvb2tzIHRvbyB2ZXJib3NlLlxuKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbi8qKlxuICogVGhpcyBtaXhpbiBnZW5lcmF0ZXMga2V5ZmFtZXMuXG4gKiBCZWNhdXNlIG9mIGFsbCBrZXlmcmFtZXMgY2FuJ3QgYmUgc2NvcGVkLFxuICogd2UgbmVlZCB0byBwdXRzIHVuaXF1ZSBuYW1lIGluIGVhY2ggYnRuLXB1bHNlIGNhbGwuXG4gKi9cbi8qXG5cbkFjY29yZGluZyB0byB0aGUgc3BlY2lmaWNhdGlvbiAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1zY29waW5nLTEvI2hvc3Qtc2VsZWN0b3IpXG46aG9zdCBhbmQgOmhvc3QtY29udGV4dCBhcmUgcHNldWRvLWNsYXNzZXMuIFNvIHdlIGFzc3VtZSB0aGV5IGNvdWxkIGJlIGNvbWJpbmVkLFxubGlrZSBvdGhlciBwc2V1ZG8tY2xhc3NlcywgZXZlbiBzYW1lIG9uZXMuXG5Gb3IgZXhhbXBsZTogJzpudGgtb2YtdHlwZSgybik6bnRoLW9mLXR5cGUoZXZlbiknLlxuXG5JZGVhbCBzb2x1dGlvbiB3b3VsZCBiZSB0byBwcmVwZW5kIGFueSBzZWxlY3RvciB3aXRoIDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKS5cblRoZW4gbmVidWxhciBjb21wb25lbnRzIHdpbGwgYmVoYXZlIGFzIGFuIGh0bWwgZWxlbWVudCBhbmQgcmVzcG9uZCB0byBbZGlyXSBhdHRyaWJ1dGUgb24gYW55IGxldmVsLFxuc28gZGlyZWN0aW9uIGNvdWxkIGJlIG92ZXJyaWRkZW4gb24gYW55IGNvbXBvbmVudCBsZXZlbC5cblxuSW1wbGVtZW50YXRpb24gY29kZTpcblxuQG1peGluIG5iLXJ0bCgpIHtcbiAgLy8gYWRkICMgdG8gc2NzcyBpbnRlcnBvbGF0aW9uIHN0YXRlbWVudC5cbiAgLy8gaXQgd29ya3MgaW4gY29tbWVudHMgYW5kIHdlIGNhbid0IHVzZSBpdCBoZXJlXG4gIEBhdC1yb290IHtzZWxlY3Rvci1hcHBlbmQoJzpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKScsICYpfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQW5kIHdoZW4gd2UgY2FsbCBpdCBzb21ld2hlcmU6XG5cbjpob3N0IHtcbiAgLnNvbWUtY2xhc3Mge1xuICAgIEBpbmNsdWRlIG5iLXJ0bCgpIHtcbiAgICAgIC4uLlxuICAgIH1cbiAgfVxufVxuOmhvc3QtY29udGV4dCguLi4pIHtcbiAgLnNvbWUtY2xhc3Mge1xuICAgIEBpbmNsdWRlIG5iLXJ0bCgpIHtcbiAgICAgIC4uLlxuICAgIH1cbiAgfVxufVxuXG5SZXN1bHQgd2lsbCBsb29rIGxpa2U6XG5cbjpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0IC5zb21lLWNsYXNzIHtcbiAgLi4uXG59XG46aG9zdC1jb250ZXh0KFtkaXI9cnRsXSk6aG9zdC1jb250ZXh0KC4uLikgLnNvbWUtY2xhc3Mge1xuICAuLi5cbn1cblxuKlxuICBTaWRlIG5vdGU6XG4gIDpob3N0LWNvbnRleHQoKTpob3N0IHNlbGVjdG9yIGFyZSB2YWxpZC4gaHR0cHM6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1zdHlsZS8yMDE1RmViLzAzMDUuaHRtbFxuXG4gIDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0LWNvbnRleHQoLi4uKSBzaG91bGQgbWF0Y2ggYW55IHBlcm11dGF0aW9uLFxuICBzbyBvcmRlciBpcyBub3QgaW1wb3J0YW50LlxuKlxuXG5cbkN1cnJlbnRseSwgdGhlcmUncmUgdHdvIHByb2JsZW1zIHdpdGggdGhpcyBhcHByb2FjaDpcblxuRmlyc3QsIGlzIHRoYXQgd2UgY2FuJ3QgY29tYmluZSA6aG9zdCwgOmhvc3QtY29udGV4dC4gQW5ndWxhciBidWdzICMxNDM0OSwgIzE5MTk5LlxuRm9yIHRoZSBtb21lbnQgb2Ygd3JpdGluZywgdGhlIG9ubHkgcG9zc2libGUgd2F5IGlzOlxuOmhvc3Qge1xuICA6aG9zdC1jb250ZXh0KC4uLikge1xuICAgIC4uLlxuICB9XG59XG5JdCBkb2Vzbid0IHdvcmsgZm9yIHVzIGJlY2F1c2UgbWl4aW4gY291bGQgYmUgY2FsbGVkIHNvbWV3aGVyZSBkZWVwZXIsIGxpa2U6XG46aG9zdCB7XG4gIHAge1xuICAgIEBpbmNsdWRlIG5iLXJ0bCgpIHsgLi4uIH1cbiAgfVxufVxuV2UgYXJlIG5vdCBhYmxlIHRvIGdvIHVwIHRvIDpob3N0IGxldmVsIHRvIHBsYWNlIGNvbnRlbnQgcGFzc2VkIHRvIG1peGluLlxuXG5UaGUgc2Vjb25kIHByb2JsZW0gaXMgdGhhdCB3ZSBvbmx5IGNhbiBiZSBzdXJlIHRoYXQgd2UgYXBwZW5kaW5nIDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKSB0byBhbm90aGVyXG46aG9zdC86aG9zdC1jb250ZXh0IHBzZXVkby1jbGFzcyB3aGVuIGNhbGxlZCBpbiB0aGVtZSBmaWxlcyAoKi50aGVtZS5zY3NzKS5cbiAgKlxuICAgIFNpZGUgbm90ZTpcbiAgICBDdXJyZW50bHksIG5iLWluc3RhbGwtY29tcG9uZW50IHVzZXMgYW5vdGhlciBhcHByb2FjaCB3aGVyZSA6aG9zdCBwcmVwZW5kZWQgd2l0aCB0aGUgdGhlbWUgbmFtZVxuICAgIChodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvNWI5NjA3ODYyNGIwYTQ3NjBmMmRiY2Y2ZmRmMGJkNjI3OTFiZTViYi9wYWNrYWdlcy9jb21waWxlci9zcmMvc2hhZG93X2Nzcy50cyNMNDQxKSxcbiAgICBidXQgaXQgd2FzIG1hZGUgdG8gYmUgYWJsZSB0byB1c2UgY3VycmVudCByZWFsaXphdGlvbiBvZiBydGwgYW5kIGl0IGNhbiBiZSByZXdyaXR0ZW4gYmFjayB0b1xuICAgIDpob3N0LWNvbnRleHQoJHRoZW1lKSBvbmNlIHdlIHdpbGwgYmUgYWJsZSB0byB1c2UgbXVsdGlwbGUgc2hhZG93IHNlbGVjdG9ycy5cbiAgKlxuQnV0IHdoZW4gaXQncyBjYWxsZWQgaW4gKi5jb21wb25lbnQuc2NzcyB3ZSBjYW4ndCBiZSBzdXJlLCB0aGF0IHNlbGVjdG9yIHN0YXJ0cyB3aXRoIDpob3N0Lzpob3N0LWNvbnRleHQsXG5iZWNhdXNlIGFuZ3VsYXIgYWxsb3dzIG9taXR0aW5nIHBzZXVkby1jbGFzc2VzIGlmIHdlIGRvbid0IG5lZWQgdG8gc3R5bGUgOmhvc3QgY29tcG9uZW50IGl0c2VsZi5cbldlIGNhbiBicmVhayBzdWNoIHNlbGVjdG9ycywgYnkganVzdCBhcHBlbmRpbmcgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHRvIHRoZW0uXG4gICoqKlxuICAgIFBvc3NpYmxlIHNvbHV0aW9uXG4gICAgY2hlY2sgaWYgd2UgaW4gdGhlbWUgYnkgc29tZSB0aGVtZSB2YXJpYWJsZXMgYW5kIGlmIHNvIGFwcGVuZCwgb3RoZXJ3aXNlIG5lc3QgbGlrZVxuICAgIEBhdC1yb290IDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKSB7XG4gICAgICAvLyBhZGQgIyB0byBzY3NzIGludGVycG9sYXRpb24gc3RhdGVtZW50LlxuICAgICAgLy8gaXQgd29ya3MgaW4gY29tbWVudHMgYW5kIHdlIGNhbid0IHVzZSBpdCBoZXJlXG4gICAgICB7Jn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgV2hhdCBpZiA6aG9zdCBzcGVjaWZpZWQ/IENhbiB3ZSBhZGQgc3BhY2UgaW4gOmhvc3QtY29udGV4dCguLi4pIDpob3N0P1xuICAgIE9yIG1heWJlIGFkZCA6aG9zdCBzZWxlY3RvciBhbnl3YXk/IElmIG11bHRpcGxlIDpob3N0IHNlbGVjdG9ycyBhcmUgYWxsb3dlZFxuICAqKipcblxuXG5Qcm9ibGVtcyB3aXRoIHRoZSBjdXJyZW50IGFwcHJvYWNoLlxuXG4xLiBEaXJlY3Rpb24gY2FuIGJlIGFwcGxpZWQgb25seSBvbiBkb2N1bWVudCBsZXZlbCwgYmVjYXVzZSBtaXhpbiBwcmVwZW5kcyB0aGVtZSBjbGFzcyxcbndoaWNoIHBsYWNlZCBvbiB0aGUgYm9keS5cbjIuICouY29tcG9uZW50LnNjc3Mgc3R5bGVzIHNob3VsZCBiZSBpbiA6aG9zdCBzZWxlY3Rvci4gT3RoZXJ3aXNlIGFuZ3VsYXIgd2lsbCBhZGQgaG9zdFxuYXR0cmlidXRlIHRvIFtkaXI9cnRsXSBhdHRyaWJ1dGUgYXMgd2VsbC5cblxuXG5HZW5lcmFsIHByb2JsZW1zLlxuXG5MdHIgaXMgZGVmYXVsdCBkb2N1bWVudCBkaXJlY3Rpb24sIGJ1dCBmb3IgcHJvcGVyIHdvcmsgb2YgbmItbHRyIChtZWFucyBsdHIgb25seSksXG5bZGlyPWx0cl0gc2hvdWxkIGJlIHNwZWNpZmllZCBhdCBsZWFzdCBzb21ld2hlcmUuICc6bm90KFtkaXI9cnRsXScgbm90IGFwcGxpY2FibGUgaGVyZSxcbmJlY2F1c2UgaXQncyBzYXRpc2Z5IGFueSBwYXJlbnQsIHRoYXQgZG9uJ3QgaGF2ZSBbZGlyPXJ0bF0gYXR0cmlidXRlLlxuUHJldmlvdXMgYXBwcm9hY2ggd2FzIHRvIHVzZSBzaW5nbGUgcnRsIG1peGluIGFuZCByZXNldCBsdHIgcHJvcGVydGllcyB0byBpbml0aWFsIHZhbHVlLlxuQnV0IHNvbWV0aW1lcyBpdCdzIGhhcmQgdG8gZmluZCwgd2hhdCB0aGUgcHJldmlvdXMgdmFsdWUgc2hvdWxkIGJlLiBBbmQgc3VjaCBtaXhpbiBjYWxsIGxvb2tzIHRvbyB2ZXJib3NlLlxuKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbi8qKlxuICogVGhpcyBtaXhpbiBnZW5lcmF0ZXMga2V5ZmFtZXMuXG4gKiBCZWNhdXNlIG9mIGFsbCBrZXlmcmFtZXMgY2FuJ3QgYmUgc2NvcGVkLFxuICogd2UgbmVlZCB0byBwdXRzIHVuaXF1ZSBuYW1lIGluIGVhY2ggYnRuLXB1bHNlIGNhbGwuXG4gKi9cbi8qXG5cbkFjY29yZGluZyB0byB0aGUgc3BlY2lmaWNhdGlvbiAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1zY29waW5nLTEvI2hvc3Qtc2VsZWN0b3IpXG46aG9zdCBhbmQgOmhvc3QtY29udGV4dCBhcmUgcHNldWRvLWNsYXNzZXMuIFNvIHdlIGFzc3VtZSB0aGV5IGNvdWxkIGJlIGNvbWJpbmVkLFxubGlrZSBvdGhlciBwc2V1ZG8tY2xhc3NlcywgZXZlbiBzYW1lIG9uZXMuXG5Gb3IgZXhhbXBsZTogJzpudGgtb2YtdHlwZSgybik6bnRoLW9mLXR5cGUoZXZlbiknLlxuXG5JZGVhbCBzb2x1dGlvbiB3b3VsZCBiZSB0byBwcmVwZW5kIGFueSBzZWxlY3RvciB3aXRoIDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKS5cblRoZW4gbmVidWxhciBjb21wb25lbnRzIHdpbGwgYmVoYXZlIGFzIGFuIGh0bWwgZWxlbWVudCBhbmQgcmVzcG9uZCB0byBbZGlyXSBhdHRyaWJ1dGUgb24gYW55IGxldmVsLFxuc28gZGlyZWN0aW9uIGNvdWxkIGJlIG92ZXJyaWRkZW4gb24gYW55IGNvbXBvbmVudCBsZXZlbC5cblxuSW1wbGVtZW50YXRpb24gY29kZTpcblxuQG1peGluIG5iLXJ0bCgpIHtcbiAgLy8gYWRkICMgdG8gc2NzcyBpbnRlcnBvbGF0aW9uIHN0YXRlbWVudC5cbiAgLy8gaXQgd29ya3MgaW4gY29tbWVudHMgYW5kIHdlIGNhbid0IHVzZSBpdCBoZXJlXG4gIEBhdC1yb290IHtzZWxlY3Rvci1hcHBlbmQoJzpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKScsICYpfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQW5kIHdoZW4gd2UgY2FsbCBpdCBzb21ld2hlcmU6XG5cbjpob3N0IHtcbiAgLnNvbWUtY2xhc3Mge1xuICAgIEBpbmNsdWRlIG5iLXJ0bCgpIHtcbiAgICAgIC4uLlxuICAgIH1cbiAgfVxufVxuOmhvc3QtY29udGV4dCguLi4pIHtcbiAgLnNvbWUtY2xhc3Mge1xuICAgIEBpbmNsdWRlIG5iLXJ0bCgpIHtcbiAgICAgIC4uLlxuICAgIH1cbiAgfVxufVxuXG5SZXN1bHQgd2lsbCBsb29rIGxpa2U6XG5cbjpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0IC5zb21lLWNsYXNzIHtcbiAgLi4uXG59XG46aG9zdC1jb250ZXh0KFtkaXI9cnRsXSk6aG9zdC1jb250ZXh0KC4uLikgLnNvbWUtY2xhc3Mge1xuICAuLi5cbn1cblxuKlxuICBTaWRlIG5vdGU6XG4gIDpob3N0LWNvbnRleHQoKTpob3N0IHNlbGVjdG9yIGFyZSB2YWxpZC4gaHR0cHM6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1zdHlsZS8yMDE1RmViLzAzMDUuaHRtbFxuXG4gIDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0LWNvbnRleHQoLi4uKSBzaG91bGQgbWF0Y2ggYW55IHBlcm11dGF0aW9uLFxuICBzbyBvcmRlciBpcyBub3QgaW1wb3J0YW50LlxuKlxuXG5cbkN1cnJlbnRseSwgdGhlcmUncmUgdHdvIHByb2JsZW1zIHdpdGggdGhpcyBhcHByb2FjaDpcblxuRmlyc3QsIGlzIHRoYXQgd2UgY2FuJ3QgY29tYmluZSA6aG9zdCwgOmhvc3QtY29udGV4dC4gQW5ndWxhciBidWdzICMxNDM0OSwgIzE5MTk5LlxuRm9yIHRoZSBtb21lbnQgb2Ygd3JpdGluZywgdGhlIG9ubHkgcG9zc2libGUgd2F5IGlzOlxuOmhvc3Qge1xuICA6aG9zdC1jb250ZXh0KC4uLikge1xuICAgIC4uLlxuICB9XG59XG5JdCBkb2Vzbid0IHdvcmsgZm9yIHVzIGJlY2F1c2UgbWl4aW4gY291bGQgYmUgY2FsbGVkIHNvbWV3aGVyZSBkZWVwZXIsIGxpa2U6XG46aG9zdCB7XG4gIHAge1xuICAgIEBpbmNsdWRlIG5iLXJ0bCgpIHsgLi4uIH1cbiAgfVxufVxuV2UgYXJlIG5vdCBhYmxlIHRvIGdvIHVwIHRvIDpob3N0IGxldmVsIHRvIHBsYWNlIGNvbnRlbnQgcGFzc2VkIHRvIG1peGluLlxuXG5UaGUgc2Vjb25kIHByb2JsZW0gaXMgdGhhdCB3ZSBvbmx5IGNhbiBiZSBzdXJlIHRoYXQgd2UgYXBwZW5kaW5nIDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKSB0byBhbm90aGVyXG46aG9zdC86aG9zdC1jb250ZXh0IHBzZXVkby1jbGFzcyB3aGVuIGNhbGxlZCBpbiB0aGVtZSBmaWxlcyAoKi50aGVtZS5zY3NzKS5cbiAgKlxuICAgIFNpZGUgbm90ZTpcbiAgICBDdXJyZW50bHksIG5iLWluc3RhbGwtY29tcG9uZW50IHVzZXMgYW5vdGhlciBhcHByb2FjaCB3aGVyZSA6aG9zdCBwcmVwZW5kZWQgd2l0aCB0aGUgdGhlbWUgbmFtZVxuICAgIChodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvNWI5NjA3ODYyNGIwYTQ3NjBmMmRiY2Y2ZmRmMGJkNjI3OTFiZTViYi9wYWNrYWdlcy9jb21waWxlci9zcmMvc2hhZG93X2Nzcy50cyNMNDQxKSxcbiAgICBidXQgaXQgd2FzIG1hZGUgdG8gYmUgYWJsZSB0byB1c2UgY3VycmVudCByZWFsaXphdGlvbiBvZiBydGwgYW5kIGl0IGNhbiBiZSByZXdyaXR0ZW4gYmFjayB0b1xuICAgIDpob3N0LWNvbnRleHQoJHRoZW1lKSBvbmNlIHdlIHdpbGwgYmUgYWJsZSB0byB1c2UgbXVsdGlwbGUgc2hhZG93IHNlbGVjdG9ycy5cbiAgKlxuQnV0IHdoZW4gaXQncyBjYWxsZWQgaW4gKi5jb21wb25lbnQuc2NzcyB3ZSBjYW4ndCBiZSBzdXJlLCB0aGF0IHNlbGVjdG9yIHN0YXJ0cyB3aXRoIDpob3N0Lzpob3N0LWNvbnRleHQsXG5iZWNhdXNlIGFuZ3VsYXIgYWxsb3dzIG9taXR0aW5nIHBzZXVkby1jbGFzc2VzIGlmIHdlIGRvbid0IG5lZWQgdG8gc3R5bGUgOmhvc3QgY29tcG9uZW50IGl0c2VsZi5cbldlIGNhbiBicmVhayBzdWNoIHNlbGVjdG9ycywgYnkganVzdCBhcHBlbmRpbmcgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHRvIHRoZW0uXG4gICoqKlxuICAgIFBvc3NpYmxlIHNvbHV0aW9uXG4gICAgY2hlY2sgaWYgd2UgaW4gdGhlbWUgYnkgc29tZSB0aGVtZSB2YXJpYWJsZXMgYW5kIGlmIHNvIGFwcGVuZCwgb3RoZXJ3aXNlIG5lc3QgbGlrZVxuICAgIEBhdC1yb290IDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKSB7XG4gICAgICAvLyBhZGQgIyB0byBzY3NzIGludGVycG9sYXRpb24gc3RhdGVtZW50LlxuICAgICAgLy8gaXQgd29ya3MgaW4gY29tbWVudHMgYW5kIHdlIGNhbid0IHVzZSBpdCBoZXJlXG4gICAgICB7Jn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgV2hhdCBpZiA6aG9zdCBzcGVjaWZpZWQ/IENhbiB3ZSBhZGQgc3BhY2UgaW4gOmhvc3QtY29udGV4dCguLi4pIDpob3N0P1xuICAgIE9yIG1heWJlIGFkZCA6aG9zdCBzZWxlY3RvciBhbnl3YXk/IElmIG11bHRpcGxlIDpob3N0IHNlbGVjdG9ycyBhcmUgYWxsb3dlZFxuICAqKipcblxuXG5Qcm9ibGVtcyB3aXRoIHRoZSBjdXJyZW50IGFwcHJvYWNoLlxuXG4xLiBEaXJlY3Rpb24gY2FuIGJlIGFwcGxpZWQgb25seSBvbiBkb2N1bWVudCBsZXZlbCwgYmVjYXVzZSBtaXhpbiBwcmVwZW5kcyB0aGVtZSBjbGFzcyxcbndoaWNoIHBsYWNlZCBvbiB0aGUgYm9keS5cbjIuICouY29tcG9uZW50LnNjc3Mgc3R5bGVzIHNob3VsZCBiZSBpbiA6aG9zdCBzZWxlY3Rvci4gT3RoZXJ3aXNlIGFuZ3VsYXIgd2lsbCBhZGQgaG9zdFxuYXR0cmlidXRlIHRvIFtkaXI9cnRsXSBhdHRyaWJ1dGUgYXMgd2VsbC5cblxuXG5HZW5lcmFsIHByb2JsZW1zLlxuXG5MdHIgaXMgZGVmYXVsdCBkb2N1bWVudCBkaXJlY3Rpb24sIGJ1dCBmb3IgcHJvcGVyIHdvcmsgb2YgbmItbHRyIChtZWFucyBsdHIgb25seSksXG5bZGlyPWx0cl0gc2hvdWxkIGJlIHNwZWNpZmllZCBhdCBsZWFzdCBzb21ld2hlcmUuICc6bm90KFtkaXI9cnRsXScgbm90IGFwcGxpY2FibGUgaGVyZSxcbmJlY2F1c2UgaXQncyBzYXRpc2Z5IGFueSBwYXJlbnQsIHRoYXQgZG9uJ3QgaGF2ZSBbZGlyPXJ0bF0gYXR0cmlidXRlLlxuUHJldmlvdXMgYXBwcm9hY2ggd2FzIHRvIHVzZSBzaW5nbGUgcnRsIG1peGluIGFuZCByZXNldCBsdHIgcHJvcGVydGllcyB0byBpbml0aWFsIHZhbHVlLlxuQnV0IHNvbWV0aW1lcyBpdCdzIGhhcmQgdG8gZmluZCwgd2hhdCB0aGUgcHJldmlvdXMgdmFsdWUgc2hvdWxkIGJlLiBBbmQgc3VjaCBtaXhpbiBjYWxsIGxvb2tzIHRvbyB2ZXJib3NlLlxuKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbi8qKlxuICogVGhpcyBtaXhpbiBnZW5lcmF0ZXMga2V5ZmFtZXMuXG4gKiBCZWNhdXNlIG9mIGFsbCBrZXlmcmFtZXMgY2FuJ3QgYmUgc2NvcGVkLFxuICogd2UgbmVlZCB0byBwdXRzIHVuaXF1ZSBuYW1lIGluIGVhY2ggYnRuLXB1bHNlIGNhbGwuXG4gKi9cbi8qXG5cbkFjY29yZGluZyB0byB0aGUgc3BlY2lmaWNhdGlvbiAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1zY29waW5nLTEvI2hvc3Qtc2VsZWN0b3IpXG46aG9zdCBhbmQgOmhvc3QtY29udGV4dCBhcmUgcHNldWRvLWNsYXNzZXMuIFNvIHdlIGFzc3VtZSB0aGV5IGNvdWxkIGJlIGNvbWJpbmVkLFxubGlrZSBvdGhlciBwc2V1ZG8tY2xhc3NlcywgZXZlbiBzYW1lIG9uZXMuXG5Gb3IgZXhhbXBsZTogJzpudGgtb2YtdHlwZSgybik6bnRoLW9mLXR5cGUoZXZlbiknLlxuXG5JZGVhbCBzb2x1dGlvbiB3b3VsZCBiZSB0byBwcmVwZW5kIGFueSBzZWxlY3RvciB3aXRoIDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKS5cblRoZW4gbmVidWxhciBjb21wb25lbnRzIHdpbGwgYmVoYXZlIGFzIGFuIGh0bWwgZWxlbWVudCBhbmQgcmVzcG9uZCB0byBbZGlyXSBhdHRyaWJ1dGUgb24gYW55IGxldmVsLFxuc28gZGlyZWN0aW9uIGNvdWxkIGJlIG92ZXJyaWRkZW4gb24gYW55IGNvbXBvbmVudCBsZXZlbC5cblxuSW1wbGVtZW50YXRpb24gY29kZTpcblxuQG1peGluIG5iLXJ0bCgpIHtcbiAgLy8gYWRkICMgdG8gc2NzcyBpbnRlcnBvbGF0aW9uIHN0YXRlbWVudC5cbiAgLy8gaXQgd29ya3MgaW4gY29tbWVudHMgYW5kIHdlIGNhbid0IHVzZSBpdCBoZXJlXG4gIEBhdC1yb290IHtzZWxlY3Rvci1hcHBlbmQoJzpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKScsICYpfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQW5kIHdoZW4gd2UgY2FsbCBpdCBzb21ld2hlcmU6XG5cbjpob3N0IHtcbiAgLnNvbWUtY2xhc3Mge1xuICAgIEBpbmNsdWRlIG5iLXJ0bCgpIHtcbiAgICAgIC4uLlxuICAgIH1cbiAgfVxufVxuOmhvc3QtY29udGV4dCguLi4pIHtcbiAgLnNvbWUtY2xhc3Mge1xuICAgIEBpbmNsdWRlIG5iLXJ0bCgpIHtcbiAgICAgIC4uLlxuICAgIH1cbiAgfVxufVxuXG5SZXN1bHQgd2lsbCBsb29rIGxpa2U6XG5cbjpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0IC5zb21lLWNsYXNzIHtcbiAgLi4uXG59XG46aG9zdC1jb250ZXh0KFtkaXI9cnRsXSk6aG9zdC1jb250ZXh0KC4uLikgLnNvbWUtY2xhc3Mge1xuICAuLi5cbn1cblxuKlxuICBTaWRlIG5vdGU6XG4gIDpob3N0LWNvbnRleHQoKTpob3N0IHNlbGVjdG9yIGFyZSB2YWxpZC4gaHR0cHM6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1zdHlsZS8yMDE1RmViLzAzMDUuaHRtbFxuXG4gIDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0LWNvbnRleHQoLi4uKSBzaG91bGQgbWF0Y2ggYW55IHBlcm11dGF0aW9uLFxuICBzbyBvcmRlciBpcyBub3QgaW1wb3J0YW50LlxuKlxuXG5cbkN1cnJlbnRseSwgdGhlcmUncmUgdHdvIHByb2JsZW1zIHdpdGggdGhpcyBhcHByb2FjaDpcblxuRmlyc3QsIGlzIHRoYXQgd2UgY2FuJ3QgY29tYmluZSA6aG9zdCwgOmhvc3QtY29udGV4dC4gQW5ndWxhciBidWdzICMxNDM0OSwgIzE5MTk5LlxuRm9yIHRoZSBtb21lbnQgb2Ygd3JpdGluZywgdGhlIG9ubHkgcG9zc2libGUgd2F5IGlzOlxuOmhvc3Qge1xuICA6aG9zdC1jb250ZXh0KC4uLikge1xuICAgIC4uLlxuICB9XG59XG5JdCBkb2Vzbid0IHdvcmsgZm9yIHVzIGJlY2F1c2UgbWl4aW4gY291bGQgYmUgY2FsbGVkIHNvbWV3aGVyZSBkZWVwZXIsIGxpa2U6XG46aG9zdCB7XG4gIHAge1xuICAgIEBpbmNsdWRlIG5iLXJ0bCgpIHsgLi4uIH1cbiAgfVxufVxuV2UgYXJlIG5vdCBhYmxlIHRvIGdvIHVwIHRvIDpob3N0IGxldmVsIHRvIHBsYWNlIGNvbnRlbnQgcGFzc2VkIHRvIG1peGluLlxuXG5UaGUgc2Vjb25kIHByb2JsZW0gaXMgdGhhdCB3ZSBvbmx5IGNhbiBiZSBzdXJlIHRoYXQgd2UgYXBwZW5kaW5nIDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKSB0byBhbm90aGVyXG46aG9zdC86aG9zdC1jb250ZXh0IHBzZXVkby1jbGFzcyB3aGVuIGNhbGxlZCBpbiB0aGVtZSBmaWxlcyAoKi50aGVtZS5zY3NzKS5cbiAgKlxuICAgIFNpZGUgbm90ZTpcbiAgICBDdXJyZW50bHksIG5iLWluc3RhbGwtY29tcG9uZW50IHVzZXMgYW5vdGhlciBhcHByb2FjaCB3aGVyZSA6aG9zdCBwcmVwZW5kZWQgd2l0aCB0aGUgdGhlbWUgbmFtZVxuICAgIChodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvNWI5NjA3ODYyNGIwYTQ3NjBmMmRiY2Y2ZmRmMGJkNjI3OTFiZTViYi9wYWNrYWdlcy9jb21waWxlci9zcmMvc2hhZG93X2Nzcy50cyNMNDQxKSxcbiAgICBidXQgaXQgd2FzIG1hZGUgdG8gYmUgYWJsZSB0byB1c2UgY3VycmVudCByZWFsaXphdGlvbiBvZiBydGwgYW5kIGl0IGNhbiBiZSByZXdyaXR0ZW4gYmFjayB0b1xuICAgIDpob3N0LWNvbnRleHQoJHRoZW1lKSBvbmNlIHdlIHdpbGwgYmUgYWJsZSB0byB1c2UgbXVsdGlwbGUgc2hhZG93IHNlbGVjdG9ycy5cbiAgKlxuQnV0IHdoZW4gaXQncyBjYWxsZWQgaW4gKi5jb21wb25lbnQuc2NzcyB3ZSBjYW4ndCBiZSBzdXJlLCB0aGF0IHNlbGVjdG9yIHN0YXJ0cyB3aXRoIDpob3N0Lzpob3N0LWNvbnRleHQsXG5iZWNhdXNlIGFuZ3VsYXIgYWxsb3dzIG9taXR0aW5nIHBzZXVkby1jbGFzc2VzIGlmIHdlIGRvbid0IG5lZWQgdG8gc3R5bGUgOmhvc3QgY29tcG9uZW50IGl0c2VsZi5cbldlIGNhbiBicmVhayBzdWNoIHNlbGVjdG9ycywgYnkganVzdCBhcHBlbmRpbmcgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHRvIHRoZW0uXG4gICoqKlxuICAgIFBvc3NpYmxlIHNvbHV0aW9uXG4gICAgY2hlY2sgaWYgd2UgaW4gdGhlbWUgYnkgc29tZSB0aGVtZSB2YXJpYWJsZXMgYW5kIGlmIHNvIGFwcGVuZCwgb3RoZXJ3aXNlIG5lc3QgbGlrZVxuICAgIEBhdC1yb290IDpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKSB7XG4gICAgICAvLyBhZGQgIyB0byBzY3NzIGludGVycG9sYXRpb24gc3RhdGVtZW50LlxuICAgICAgLy8gaXQgd29ya3MgaW4gY29tbWVudHMgYW5kIHdlIGNhbid0IHVzZSBpdCBoZXJlXG4gICAgICB7Jn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgV2hhdCBpZiA6aG9zdCBzcGVjaWZpZWQ/IENhbiB3ZSBhZGQgc3BhY2UgaW4gOmhvc3QtY29udGV4dCguLi4pIDpob3N0P1xuICAgIE9yIG1heWJlIGFkZCA6aG9zdCBzZWxlY3RvciBhbnl3YXk/IElmIG11bHRpcGxlIDpob3N0IHNlbGVjdG9ycyBhcmUgYWxsb3dlZFxuICAqKipcblxuXG5Qcm9ibGVtcyB3aXRoIHRoZSBjdXJyZW50IGFwcHJvYWNoLlxuXG4xLiBEaXJlY3Rpb24gY2FuIGJlIGFwcGxpZWQgb25seSBvbiBkb2N1bWVudCBsZXZlbCwgYmVjYXVzZSBtaXhpbiBwcmVwZW5kcyB0aGVtZSBjbGFzcyxcbndoaWNoIHBsYWNlZCBvbiB0aGUgYm9keS5cbjIuICouY29tcG9uZW50LnNjc3Mgc3R5bGVzIHNob3VsZCBiZSBpbiA6aG9zdCBzZWxlY3Rvci4gT3RoZXJ3aXNlIGFuZ3VsYXIgd2lsbCBhZGQgaG9zdFxuYXR0cmlidXRlIHRvIFtkaXI9cnRsXSBhdHRyaWJ1dGUgYXMgd2VsbC5cblxuXG5HZW5lcmFsIHByb2JsZW1zLlxuXG5MdHIgaXMgZGVmYXVsdCBkb2N1bWVudCBkaXJlY3Rpb24sIGJ1dCBmb3IgcHJvcGVyIHdvcmsgb2YgbmItbHRyIChtZWFucyBsdHIgb25seSksXG5bZGlyPWx0cl0gc2hvdWxkIGJlIHNwZWNpZmllZCBhdCBsZWFzdCBzb21ld2hlcmUuICc6bm90KFtkaXI9cnRsXScgbm90IGFwcGxpY2FibGUgaGVyZSxcbmJlY2F1c2UgaXQncyBzYXRpc2Z5IGFueSBwYXJlbnQsIHRoYXQgZG9uJ3QgaGF2ZSBbZGlyPXJ0bF0gYXR0cmlidXRlLlxuUHJldmlvdXMgYXBwcm9hY2ggd2FzIHRvIHVzZSBzaW5nbGUgcnRsIG1peGluIGFuZCByZXNldCBsdHIgcHJvcGVydGllcyB0byBpbml0aWFsIHZhbHVlLlxuQnV0IHNvbWV0aW1lcyBpdCdzIGhhcmQgdG8gZmluZCwgd2hhdCB0aGUgcHJldmlvdXMgdmFsdWUgc2hvdWxkIGJlLiBBbmQgc3VjaCBtaXhpbiBjYWxsIGxvb2tzIHRvbyB2ZXJib3NlLlxuKi9cbi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbi8qXG4gICAgICA6aG9zdCBjYW4gYmUgcHJlZml4ZWRcbiAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi84ZDBlZTM0OTM5ZjE0YzA3ODc2ZDIyMmMyNWI0MDVlZDQ1OGEzNGQzL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy9zaGFkb3dfY3NzLnRzI0w0NDFcblxuICAgICAgV2UgaGF2ZSB0byB1c2UgOmhvc3QgaW5zdGVkIG9mIDpob3N0LWNvbnRleHQoJHRoZW1lKSwgdG8gYmUgYWJsZSB0byBwcmVmaXggdGhlbWUgY2xhc3NcbiAgICAgIHdpdGggc29tZXRoaW5nIGRlZmluZWQgaW5zaWRlIG9mIEBjb250ZW50LCBieSBwcmVmaXhpbmcgJi5cbiAgICAgIEZvciBleGFtcGxlIHRoaXMgc2NzcyBjb2RlOlxuICAgICAgICAubmItdGhlbWUtZGVmYXVsdCB7XG4gICAgICAgICAgLnNvbWUtc2VsZWN0b3IgJiB7XG4gICAgICAgICAgICAuLi5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIFdpbGwgcmVzdWx0IGluIG5leHQgY3NzOlxuICAgICAgICAuc29tZS1zZWxlY3RvciAubmItdGhlbWUtZGVmYXVsdCB7XG4gICAgICAgICAgLi4uXG4gICAgICAgIH1cblxuICAgICAgSXQgZG9lc24ndCB3b3JrIHdpdGggOmhvc3QtY29udGV4dCBiZWNhdXNlIGFuZ3VsYXIgc3BsaXR0aW5nIGl0IGluIHR3byBzZWxlY3RvcnMgYW5kIHJlbW92ZXNcbiAgICAgIHByZWZpeCBpbiBvbmUgb2YgdGhlIHNlbGVjdG9ycy5cbiAgICAqL1xuLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCAubGVmdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvcmRlcjogMDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgLnJpZ2h0IHtcbiAgICBvcmRlcjogMTtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cbiAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCAubG9nby1jb250YWludGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IGNhbGMoMTZyZW0gLSAxLjI1cmVtKTsgfVxuICAubmItdGhlbWUtY29ycG9yYXRlIDpob3N0IC5jb250cm9sLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgLmhlYWRlci1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgLmhlYWRlci1jb250YWluZXIgLm5hdmlnYXRpb24ge1xuICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAgIFtkaXI9bHRyXSAubmItdGhlbWUtY29ycG9yYXRlIDpob3N0IC5oZWFkZXItY29udGFpbmVyIC5uYXZpZ2F0aW9uIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMS4yNXJlbTsgfVxuICAgICAgW2Rpcj1ydGxdIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgLmhlYWRlci1jb250YWluZXIgLm5hdmlnYXRpb24ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07IH1cbiAgICAgIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgLmhlYWRlci1jb250YWluZXIgLm5hdmlnYXRpb24gaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCAuaGVhZGVyLWNvbnRhaW5lciAubG9nbyB7XG4gICAgICBwYWRkaW5nOiAwIDEuMjVyZW07XG4gICAgICBmb250LXNpemU6IDEuNzVyZW07XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgICAgW2Rpcj1sdHJdIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgLmhlYWRlci1jb250YWluZXIgLmxvZ28ge1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjZGQ1ZGM7IH1cbiAgICAgIFtkaXI9cnRsXSAubmItdGhlbWUtY29ycG9yYXRlIDpob3N0IC5oZWFkZXItY29udGFpbmVyIC5sb2dvIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NkZDVkYzsgfVxuICAgICAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCAuaGVhZGVyLWNvbnRhaW5lciAubG9nbyBzcGFuIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICBbZGlyPWx0cl0gLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCBuYi1hY3Rpb24ge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjM2Y0NTUwOyB9XG4gIFtkaXI9cnRsXSAubmItdGhlbWUtY29ycG9yYXRlIDpob3N0IG5iLWFjdGlvbiB7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjM2Y0NTUwOyB9XG4gIFtkaXI9bHRyXSAubmItdGhlbWUtY29ycG9yYXRlIDpob3N0IC5oZWFkZXItY29udGFpbmVyIC5sb2dvIHtcbiAgICBib3JkZXI6IG5vbmU7IH1cbiAgW2Rpcj1ydGxdIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgLmhlYWRlci1jb250YWluZXIgLmxvZ28ge1xuICAgIGJvcmRlcjogbm9uZTsgfVxuICAubmItdGhlbWUtY29ycG9yYXRlIDpob3N0IC5oZWFkZXItY29udGFpbmVyIC9kZWVwLyBuZ3gtdGhlbWUtc3dpdGNoZXIgLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCBuZ3gtbGF5b3V0LWRpcmVjdGlvbi1zd2l0Y2hlciB7XG4gICAgbWFyZ2luOiAwIDEuNXJlbTsgfVxuICAubmItdGhlbWUtY29ycG9yYXRlIDpob3N0IG5neC10aGVtZS1zd2l0Y2hlciB7XG4gICAgbWFyZ2luOiAyLjI1cmVtIDIuMjVyZW0gMC43NXJlbTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEzOTkuOThweCkge1xuICAgIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3Qgbmd4LWxheW91dC1kaXJlY3Rpb24tc3dpdGNoZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgLnRvZ2dsZS1sYXlvdXQgL2RlZXAvIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTsgfVxuICAgIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgLnRvZ2dsZS1sYXlvdXQgL2RlZXAvIGEgaSB7XG4gICAgICBjb2xvcjogI2E0YWJiMztcbiAgICAgIGZvbnQtc2l6ZTogMi4yNXJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGFuaW1hdGlvbi1uYW1lOiBwdWxzZS1saWdodDsgfVxuICAgICAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCAudG9nZ2xlLWxheW91dCAvZGVlcC8gYSBpOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQUFBQVAvLy95SDVCQUVBQUFBQUxBQUFBQUFCQUFFQUFBSUJSQUE3XCIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTIuMyU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAxMyU7XG4gICAgICAgIGhlaWdodDogMTMlO1xuICAgICAgICBhbmltYXRpb246IDNzIGxpbmVhciBpbmZpbml0ZSBwdWxzZTsgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcHVsc2Uge1xuICAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDFweCAwIHJnYmEoMTY0LCAxNzEsIDE3OSwgMCk7IH1cbiAgMjAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgM3B4IDEwcHggcmdiYSgxNjQsIDE3MSwgMTc5LCAwLjQpOyB9XG4gIDEwMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMjBweCByZ2JhKDE2NCwgMTcxLCAxNzksIDApOyB9IH1cblxuQC1tb3ota2V5ZnJhbWVzIHB1bHNlIHtcbiAgMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcHggMCByZ2JhKDE2NCwgMTcxLCAxNzksIDApOyB9XG4gIDIwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDNweCAxMHB4IHJnYmEoMTY0LCAxNzEsIDE3OSwgMC40KTsgfVxuICAxMDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4IDIwcHggcmdiYSgxNjQsIDE3MSwgMTc5LCAwKTsgfSB9XG5cbkAtby1rZXlmcmFtZXMgcHVsc2Uge1xuICAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDFweCAwIHJnYmEoMTY0LCAxNzEsIDE3OSwgMCk7IH1cbiAgMjAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgM3B4IDEwcHggcmdiYSgxNjQsIDE3MSwgMTc5LCAwLjQpOyB9XG4gIDEwMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMjBweCByZ2JhKDE2NCwgMTcxLCAxNzksIDApOyB9IH1cblxuQGtleWZyYW1lcyBwdWxzZSB7XG4gIDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMXB4IDAgcmdiYSgxNjQsIDE3MSwgMTc5LCAwKTsgfVxuICAyMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAzcHggMTBweCByZ2JhKDE2NCwgMTcxLCAxNzksIDAuNCk7IH1cbiAgMTAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAyMHB4IHJnYmEoMTY0LCAxNzEsIDE3OSwgMCk7IH0gfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcHVsc2UtbGlnaHQge1xuICAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDFweCAwIHJnYmEoMTE1LCAyNTUsIDIwOCwgMCk7IH1cbiAgMjAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgM3B4IDEwcHggcmdiYSgxMTUsIDI1NSwgMjA4LCAwLjQpOyB9XG4gIDEwMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMjBweCByZ2JhKDExNSwgMjU1LCAyMDgsIDApOyB9IH1cblxuQC1tb3ota2V5ZnJhbWVzIHB1bHNlLWxpZ2h0IHtcbiAgMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcHggMCByZ2JhKDExNSwgMjU1LCAyMDgsIDApOyB9XG4gIDIwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDNweCAxMHB4IHJnYmEoMTE1LCAyNTUsIDIwOCwgMC40KTsgfVxuICAxMDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4IDIwcHggcmdiYSgxMTUsIDI1NSwgMjA4LCAwKTsgfSB9XG5cbkAtby1rZXlmcmFtZXMgcHVsc2UtbGlnaHQge1xuICAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDFweCAwIHJnYmEoMTE1LCAyNTUsIDIwOCwgMCk7IH1cbiAgMjAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgM3B4IDEwcHggcmdiYSgxMTUsIDI1NSwgMjA4LCAwLjQpOyB9XG4gIDEwMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMjBweCByZ2JhKDExNSwgMjU1LCAyMDgsIDApOyB9IH1cblxuQGtleWZyYW1lcyBwdWxzZS1saWdodCB7XG4gIDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMXB4IDAgcmdiYSgxMTUsIDI1NSwgMjA4LCAwKTsgfVxuICAyMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAzcHggMTBweCByZ2JhKDExNSwgMjU1LCAyMDgsIDAuNCk7IH1cbiAgMTAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAyMHB4IHJnYmEoMTE1LCAyNTUsIDIwOCwgMCk7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgICAubmItdGhlbWUtY29ycG9yYXRlIDpob3N0IG5iLWFjdGlvbjpub3QoLnRvZ2dsZS1sYXlvdXQpIHtcbiAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAgIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgLmNvbnRyb2wtaXRlbSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCAudG9nZ2xlLWxheW91dCB7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCBuZ3gtbGF5b3V0LWRpcmVjdGlvbi1zd2l0Y2hlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCBuZ3gtdGhlbWUtc3dpdGNoZXIge1xuICAgICAgbWFyZ2luOiAwIDAuNXJlbTsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAgIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgbmItdXNlciAvZGVlcC8gLnVzZXItbmFtZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gICAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCAuaGVhZGVyLWNvbnRhaW5lciAubG9nbyB7XG4gICAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgICAubmItdGhlbWUtY29ycG9yYXRlIDpob3N0IC50b2dnbGUtbGF5b3V0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAubmItdGhlbWUtY29ycG9yYXRlIDpob3N0IG5neC10aGVtZS1zd2l0Y2hlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCBuYi1hY3Rpb246bm90KC50b2dnbGUtbGF5b3V0KSB7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDM5OS45OHB4KSB7XG4gICAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCAucmlnaHQgL2RlZXAvIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4ubG9nby1jb250YWludGVyIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4ubG9nby1jb250YWludGVyIC50aGVtZXMtc3dpdGNoZXIgc3BhbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiAxOXB4O1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbG9yOiAjNjhiOTJlO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tbGVmdDogLTJweDsgfVxuXG5uYXYuZml4ZWQge1xuICBoZWlnaHQ6IDUycHggIWltcG9ydGFudDsgfVxuIl19 */\"","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\n\nimport { NbSidebarService, NbMenuService } from '@nebular/theme';\nimport { LayoutService } from '../../services/layout.service';\nimport { SharedService } from '../../../shared/service/shared.service';\nimport { AppComponent } from '../../../app.component';\nimport { CmpDetail, UserInfo } from './CmpModel'\n\n@Component({\n selector: 'ngx-header',\n styleUrls: ['./header.component.scss'],\n templateUrl: './header.component.html',\n})\n\n\nexport class HeaderComponent implements OnInit {\n\n // user: any = {\n // 'name': 'RecTrans',\n // 'picture': 'src\\assets\\images\\nick.png',\n // };\n\n user: UserInfo = new UserInfo();\n\n\n cmpDetail = new CmpDetail();\n branch: string;\n curYear: string;\n UsName: string;\n\n\n userMenu = [\n { title: 'Profile', data: { id: 'Profile' } },\n { title: 'Change Branch', data: { id: 'updateBranch' } },\n { title: 'Log out', data: { id: 'logout' } },\n ];\n\n // branchMenu = [\n // { title: 'Update Branch', data: { id: 'updateBranch' } },\n // ];\n\n constructor(\n private sidebarService: NbSidebarService,\n private layoutService: LayoutService,\n private menuService: NbMenuService,\n private router: Router,\n private sharedService: SharedService,\n private app: AppComponent,\n private route: ActivatedRoute\n ) { }\n\n ngOnInit() {\n // this.userService.getUsers()\n // .subscribe((users: any) => this.user = users.nick);\n\n this.route.queryParams.subscribe(params => {\n this.user.name = params[\"name\"];\n this.user.picture = 'assets/images/Logogreen.png';\n\n });\n\n this.UsName = this.user.name;\n\n this.getCompanyDetail()\n this.branch = localStorage.getItem('tpsBranch');\n this.menuEvents();\n\n }\n\n\n getCompanyDetail() {\n this.sharedService.getCmpInfo().subscribe((res) => {\n if (res == null) return;\n if (res['data'] == null) return;\n this.cmpDetail.cmpName = res['data']['CmpName'];\n var sDt = res['data']['CmpInstallDt'];\n\n if (sDt != null) {\n let dt1: Date;\n dt1 = new Date(sDt);\n dt1 = this.sharedService.utcDate(dt1);\n //var Year = dt1.getFullYear() + \"-\" + Number(dt1.getFullYear()) + 1;\n // 14-06-2024\n //this.curYear = dt1.getFullYear() + \"-\" + (Number(dt1.getFullYear()) + 1);\n this.curYear = \"2024-25\";\n }\n\n\n\n }, (err) => { });\n }\n\n\n menuEvents() {\n this.menuService.onItemClick()\n .subscribe((item) => {\n if (item && item.item && item.item.data) {\n if (item.item.data.id === 'logout') {\n this.logout();\n } else if (item.item.data.id === 'updateBranch') {\n this.router.navigate(['/branch'], { queryParams: this.user });\n }\n }\n });\n }\n\n toggleSidebar(): boolean {\n this.sidebarService.toggle(true, 'menu-sidebar');\n this.layoutService.changeLayoutSize();\n return false;\n }\n logout() {\n this.sharedService.logout();\n }\n\n\n}\n","export * from './header/header.component';\nexport * from './footer/footer.component';\n","export * from './one-column/one-column.layout';\n","import { NbMenuItem } from '@nebular/theme';\nimport * as jwt_decode from 'jwt-decode';\n\nexport const MENU_ITEMS1: NbMenuItem[] = [\n {\n title: 'Dashboard',\n icon: 'nb-list',\n link: '/home/home',\n target: 'TR',\n hidden: false,\n },\n {\n title: 'Dashboard',\n icon: 'nb-list',\n link: '/home/hometrad',\n target: 'TD',\n hidden: false,\n },\n {\n title: 'Lr-Status',\n icon: 'fa fa-cubes',\n link: '/lronly/status',\n target: 'TR',\n hidden: false,\n },\n {\n title: 'Master',\n icon: 'fa fa-users',\n expanded: false,\n hidden: false,\n target: 'TR-TD',\n children: [\n\n {\n icon: 'nb-list nb-xs',\n // icon: 'nb-arrow-right',\n title: 'Branch',\n link: '/recmaster/recbranch',\n target: 'TR-TD',\n hidden: false,\n },\n {\n icon: 'nb-list nb-xs',\n title: 'Account',\n link: '/account/list',\n target: 'TR-TD',\n hidden: false,\n },\n {\n icon: 'nb-list nb-xs',\n title: 'Address',\n link: '/account/addresslist',\n target: 'TD',\n hidden: false,\n },\n {\n icon: 'fa fa-life-ring',\n title: 'City',\n link: '/recmaster/recstation',\n target: 'TR-TD',\n hidden: false,\n },\n {\n icon: 'fa fa-car',\n title: 'Vehicle',\n link: '/vehicle/list',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-list nb-xs',\n title: 'Material',\n link: '/recmaster/recmaterial',\n target: 'TR-TD',\n hidden: false,\n },\n {\n icon: 'nb-list nb-xs',\n title: 'Unit',\n link: '/recmaster/recunit',\n target: 'TR-TD',\n hidden: false,\n },\n {\n icon: 'nb-list nb-xs',\n title: 'Packing Type',\n link: '/recmaster/recpacking',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'fas fa-address-card fa-sm',\n title: 'Driver',\n link: '/driver/list',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'fa fa-user-circle',\n title: 'Employee',\n link: '/employee/list',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'fa fa-user-circle',\n title: 'Document',\n link: '/recmaster/recdocument',\n target: 'TR-TD',\n hidden: false,\n },\n ],\n },\n {\n title: 'Transaction',\n icon: 'fa fa-truck',\n hidden: false,\n target: 'TR-TD',\n children: [\n {\n icon: 'nb-alert',\n title: 'LR Parcel',\n link: '/lronly/create',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-alert',\n title: 'LR Full',\n link: '/lronly/createfull',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-alert',\n title: 'Loading Memo',\n link: '/lronly/createmlfull',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-chevron-right',\n title: 'Challan',\n link: '/challan/create',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-location',\n title: 'Freight Invoice',\n link: '/invoice/create',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-layout-centre',\n title: 'Unloading',\n link: '/unloading/create',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-grid-a',\n title: 'Delivery',\n link: '/delivery/create',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-grid-a',\n title: 'MRS',\n link: '/mrs/createmrs',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-grid-a',\n title: 'BRS',\n link: '/mrs/createbrs',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-grid-a',\n title: 'LHS',\n link: '/mrs/createlhs',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-grid-a',\n title: 'Sales Invoice',\n link: '/tradinvoice/tbcreate',\n target: 'TD',\n hidden: false,\n },\n {\n icon: 'nb-grid-a',\n title: 'Purchase Invoice',\n link: '/tradinvoice/pbcreate',\n target: 'TD',\n hidden: false,\n },\n {\n icon: 'nb-grid-a',\n title: 'Transport Invoice',\n link: '/tradinvoice/rtcreate',\n target: 'TD',\n hidden: false,\n },\n {\n icon: 'nb-grid-a',\n title: 'Credit Note',\n link: '/tradinvoice/crncreate',\n target: 'TD',\n hidden: false,\n },\n {\n icon: 'nb-grid-a',\n title: 'Debit Note',\n link: '/tradinvoice/dbncreate',\n target: 'TD',\n hidden: false,\n },\n ],\n },\n {\n title: 'Report',\n icon: 'fa fa-address-book',\n target: 'TR-TD',\n hidden: false,\n children: [\n {\n icon: 'nb-paper-plane',\n title: 'LR Register',\n link: '/lronly/lrsummary',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-paper-plane',\n title: 'Challan Register',\n link: '/challan/chsummarymenu',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-paper-plane',\n title: 'LHC Register',\n link: '/challan/lhcsummarymenu',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-paper-plane',\n title: 'Invoice Register',\n link: '/invoice/invsummarymenu',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-paper-plane',\n title: 'FV Register',\n link: '/invoice/fvsummarymenu',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-paper-plane',\n title: 'Sales Register',\n link: '/tradinvoice/tradtbinvsummary',\n target: 'TD',\n hidden: false,\n },\n {\n icon: 'nb-paper-plane',\n title: 'Purchase Register',\n link: '/tradinvoice/tradpbinvsummary',\n target: 'TD',\n hidden: false,\n },\n {\n icon: 'nb-paper-plane',\n title: 'Transport Register',\n link: '/tradinvoice/tradrtinvsummary',\n target: 'TD',\n hidden: false,\n },\n {\n icon: 'nb-paper-plane',\n title: 'Credit-Note Register',\n link: '/tradinvoice/tradcrninvsummary',\n target: 'TD',\n hidden: false,\n },\n {\n icon: 'nb-paper-plane',\n title: 'Debit-Note Register',\n link: '/tradinvoice/traddbninvsummary',\n target: 'TD',\n hidden: false,\n },\n {\n icon: 'nb-paper-plane',\n title: 'GST Register',\n link: '/invoice/invgstregister',\n target: 'TR-TD',\n hidden: false,\n },\n {\n icon: 'nb-paper-plane',\n title: 'Unloading Register',\n link: '/unloading/uldsummary',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-roller-shades',\n title: 'Delivery Register',\n link: '/delivery/dlvsummary',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-paper-plane',\n title: 'MR Register',\n link: '/voucher/mrsummaryall',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-paper-plane',\n title: 'Voucher Register',\n link: '/voucher/agsummarymenu',\n target: 'TR-TD',\n hidden: false,\n },\n {\n icon: 'nb-grid-a',\n title: 'MRS Register',\n link: '/mrs/mrssummary',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-grid-a',\n title: 'BRS Register',\n link: '/mrs/brssummary',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-grid-a',\n title: 'LHS Register',\n link: '/mrs/lhssummary',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-grid-a',\n title: 'Trip Register',\n link: '/trip/list',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-grid-a',\n title: 'Trip Income',\n link: '/challan/tripincome',\n target: 'TR',\n hidden: false,\n },\n ],\n },\n {\n title: 'Pending Reports',\n icon: 'fa fa-address-book',\n target: 'TR-TD',\n hidden: false,\n children: [\n {\n icon: 'nb-paper-plane',\n title: 'To Bill',\n link: '/lronly/lrpndtobill',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-paper-plane',\n title: 'To Challan',\n link: '/lronly/lrpndtochln',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-paper-plane',\n title: 'To MR',\n link: '/lronly/lrpndtomr',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-paper-plane',\n title: 'To Delivery',\n link: '/lronly/lrpndtodlv',\n target: 'TR',\n hidden: false,\n },\n {\n icon: 'nb-paper-plane',\n title: 'Outstanding Bill',\n link: '/voucher/osbill',\n target: 'TR-TD',\n hidden: false,\n },\n {\n icon: 'nb-paper-plane',\n title: 'Outstanding LHC',\n link: '/voucher/oslhc',\n target: 'TR',\n hidden: false,\n },\n ],\n\n },\n {\n title: 'Accounts',\n icon: 'fa fa-address-book',\n hidden: false,\n target: 'TR-TD',\n children: [\n {\n title: 'Account Master',\n link: '/account/create',\n target: 'TR-TD',\n hidden: false,\n },\n {\n title: 'Account Group',\n link: '/account/listacgrp',\n target: 'TR-TD',\n hidden: false,\n },\n {\n title: 'Money Receipt',\n link: '/voucher/create',\n target: 'TR',\n hidden: false,\n },\n {\n title: 'Collection Voucher',\n link: '/colvou/colvrsummary',\n target: 'TR',\n hidden: false,\n },\n {\n title: 'Home Delivery',\n link: '/colvou/hdvrsummary',\n target: 'TR',\n hidden: false,\n },\n {\n title: 'General Voucher',\n link: '/genvoucher/create',\n target: 'TR-TD',\n hidden: false,\n },\n {\n title: 'Voucher List',\n link: '/genvoucher/genvousummary',\n target: 'TR-TD',\n hidden: false,\n },\n {\n title: 'Payment of Challan',\n link: '/voucher/createaglhc',\n target: 'TR-TD',\n hidden: false,\n },\n {\n title: 'Receipt of Bill',\n link: '/voucher/createaginv',\n target: 'TR-TD',\n hidden: false,\n },\n {\n title: 'Trial Balance',\n link: '/genvoucher/menutrbal',\n target: 'TR-TD',\n hidden: false,\n },\n {\n title: 'Bank Book',\n link: '/genvoucher/menubankbook',\n target: 'TR-TD',\n hidden: false,\n },\n {\n title: 'Cash Book',\n link: '/genvoucher/menucashbook',\n target: 'TR-TD',\n hidden: false,\n },\n {\n title: 'Balance Sheet',\n link: '/genvoucher/menubsheet',\n target: 'TR-TD',\n hidden: false,\n },\n {\n title: 'Profit & Loss',\n link: '/genvoucher/menubpandf',\n target: 'TR-TD',\n hidden: false,\n },\n ],\n },\n {\n title: 'Vehicle Maintenance',\n icon: 'fa fa-address-book',\n target: 'TR',\n hidden: false,\n children: [\n {\n icon: 'nb-paper-plane',\n title: 'Vehicle Parts',\n link: '/vhparts/list',\n hidden: false,\n target: 'TR'\n },\n {\n icon: 'nb-paper-plane',\n title: 'Part Category',\n link: '/vhparts/catlist',\n hidden: false,\n target: 'TR'\n },\n {\n icon: 'nb-paper-plane',\n title: 'Make / Company',\n link: '/vhparts/makelist',\n hidden: false,\n target: 'TR'\n },\n {\n icon: 'nb-paper-plane',\n title: 'Item Grade',\n link: '/vhparts/gradelist',\n hidden: false,\n target: 'TR'\n },\n {\n icon: 'nb-paper-plane',\n title: 'Opening Stock',\n link: '/vhmaintenance/vmopbstock',\n hidden: false,\n target: 'TR'\n },\n {\n icon: 'nb-paper-plane',\n title: 'Purchase Parts',\n link: '/vhmaintenance/purchasepart',\n hidden: false,\n target: 'TR'\n },\n {\n icon: 'nb-paper-plane',\n title: 'Issue Parts',\n link: '/vhmaintenance/vmissuestrveh',\n hidden: false,\n target: 'TR'\n },\n {\n icon: 'nb-paper-plane',\n title: 'Issue for Repair',\n link: '/vhmaintenance/vmstrrpr',\n hidden: false,\n target: 'TR'\n },\n\n {\n icon: 'nb-paper-plane',\n title: 'Issue for Destroy',\n link: '/vhmaintenance/vmissuestrdst',\n hidden: false,\n target: 'TR'\n },\n\n {\n icon: 'nb-paper-plane',\n title: 'Issue to Party',\n link: '/vhmaintenance/vmstrprt',\n hidden: false,\n target: 'TR'\n },\n {\n icon: 'nb-paper-plane',\n title: 'Receive from Repair',\n link: '/vhmaintenance/vmrprrtn',\n hidden: false,\n target: 'TR'\n },\n\n {\n icon: 'nb-paper-plane',\n title: 'Remove Parts',\n link: '/vhmaintenance/vmrmvparts',\n hidden: false,\n target: 'TR'\n },\n {\n icon: 'nb-paper-plane',\n title: 'Transfer to Other Branch',\n link: '/vhmaintenance/vmstrtobranch',\n hidden: false,\n target: 'TR'\n },\n ]\n\n },\n\n {\n title: 'VM Report',\n icon: 'fa fa-address-book',\n target: 'TR',\n hidden: false,\n children: [\n {\n icon: 'nb-paper-plane',\n title: 'Purchase Summary',\n link: '/vhmaintenance/vmpursum',\n hidden: false,\n target: 'TR'\n },\n {\n icon: 'nb-paper-plane',\n title: 'Parts Movement',\n link: '/vhmaintenance/vmitemmove',\n hidden: false,\n target: 'TR'\n },\n {\n icon: 'nb-paper-plane',\n title: 'Workshop Stock',\n link: '/vhmaintenance/vmstrstock',\n hidden: false,\n target: 'TR'\n },\n {\n icon: 'nb-paper-plane',\n title: 'Current Vehicle Parts',\n link: '/vhmaintenance/vmvehcurrentparts',\n hidden: false,\n target: 'TR'\n },\n {\n icon: 'nb-paper-plane',\n title: 'Find Tyre No',\n link: '/vhmaintenance/vmfindtyreno',\n hidden: false,\n target: 'TR'\n },\n {\n icon: 'nb-paper-plane',\n title: 'Vehicle Ledger',\n link: '/vhmaintenance/vhledger',\n hidden: false,\n target: 'TR'\n },\n ]\n\n },\n {\n title: 'Utility',\n icon: 'fa fa-address-book',\n hidden: false,\n target: 'TR-TD',\n children: [\n {\n title: 'User Management',\n link: '/user',\n target: 'TR-TD',\n hidden: false,\n //hidden: !findRole() //!findRole([1], Number(tokenPayload.userRole)),\n },\n {\n title: 'Company Profile',\n link: '/user/getcompany',\n target: 'TR-TD',\n hidden: false,\n },\n {\n title: 'Bill Charges',\n link: '/user/billcharge',\n target: 'TR',\n hidden: false,\n },\n {\n title: 'Invoice Condition',\n link: '/invoice/invtclist',\n target: 'TR-TD',\n hidden: false,\n },\n {\n title: 'View List',\n link: '/views/list',\n target: 'TR',\n hidden: false,\n },\n {\n title: 'Add New Company',\n link: '/user/cmplist',\n target: 'RC',\n hidden: false,\n },\n {\n title: 'Account Option',\n link: '/user/optionac',\n target: 'TR-TD',\n hidden: false,\n },\n {\n title: 'Email Configer',\n link: '/user/optionemail',\n target: 'TR-TD',\n hidden: false,\n },\n {\n title: 'Invoice Configer',\n link: '/user/optioninv',\n target: 'TR-TD',\n hidden: false,\n },\n {\n title: 'Import Excel',\n link: '/user/importexcel',\n target: 'TR-TD',\n hidden: false,\n },\n ]\n },\n {\n title: 'Logout',\n icon: 'fa fa-sign-out-alt',\n link: '/auth/logout',\n target: 'TR-TD',\n hidden: false,\n },\n];\n\nfunction findRole() {\n var token = localStorage.getItem('tpsToken');\n var decode = jwt_decode(token);\n var UserType = decode.A3;\n\n if (UserType == \"Admin\")\n return true;\n else\n return false;\n}","module.exports = \"/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This is a starting point where we declare the maps of themes and globally available functions/mixins\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This mixin generates keyfames.\\n * Because of all keyframes can't be scoped,\\n * we need to puts unique name in each btn-pulse call.\\n */\\n/*\\n\\nAccording to the specification (https://www.w3.org/TR/css-scoping-1/#host-selector)\\n:host and :host-context are pseudo-classes. So we assume they could be combined,\\nlike other pseudo-classes, even same ones.\\nFor example: ':nth-of-type(2n):nth-of-type(even)'.\\n\\nIdeal solution would be to prepend any selector with :host-context([dir=rtl]).\\nThen nebular components will behave as an html element and respond to [dir] attribute on any level,\\nso direction could be overridden on any component level.\\n\\nImplementation code:\\n\\n@mixin nb-rtl() {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n @at-root {selector-append(':host-context([dir=rtl])', &)} {\\n @content;\\n }\\n}\\n\\nAnd when we call it somewhere:\\n\\n:host {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n:host-context(...) {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n\\nResult will look like:\\n\\n:host-context([dir=rtl]):host .some-class {\\n ...\\n}\\n:host-context([dir=rtl]):host-context(...) .some-class {\\n ...\\n}\\n\\n*\\n Side note:\\n :host-context():host selector are valid. https://lists.w3.org/Archives/Public/www-style/2015Feb/0305.html\\n\\n :host-context([dir=rtl]):host-context(...) should match any permutation,\\n so order is not important.\\n*\\n\\n\\nCurrently, there're two problems with this approach:\\n\\nFirst, is that we can't combine :host, :host-context. Angular bugs #14349, #19199.\\nFor the moment of writing, the only possible way is:\\n:host {\\n :host-context(...) {\\n ...\\n }\\n}\\nIt doesn't work for us because mixin could be called somewhere deeper, like:\\n:host {\\n p {\\n @include nb-rtl() { ... }\\n }\\n}\\nWe are not able to go up to :host level to place content passed to mixin.\\n\\nThe second problem is that we only can be sure that we appending :host-context([dir=rtl]) to another\\n:host/:host-context pseudo-class when called in theme files (*.theme.scss).\\n *\\n Side note:\\n Currently, nb-install-component uses another approach where :host prepended with the theme name\\n (https://github.com/angular/angular/blob/5b96078624b0a4760f2dbcf6fdf0bd62791be5bb/packages/compiler/src/shadow_css.ts#L441),\\n but it was made to be able to use current realization of rtl and it can be rewritten back to\\n :host-context($theme) once we will be able to use multiple shadow selectors.\\n *\\nBut when it's called in *.component.scss we can't be sure, that selector starts with :host/:host-context,\\nbecause angular allows omitting pseudo-classes if we don't need to style :host component itself.\\nWe can break such selectors, by just appending :host-context([dir=rtl]) to them.\\n ***\\n Possible solution\\n check if we in theme by some theme variables and if so append, otherwise nest like\\n @at-root :host-context([dir=rtl]) {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n {&} {\\n @content;\\n }\\n }\\n What if :host specified? Can we add space in :host-context(...) :host?\\n Or maybe add :host selector anyway? If multiple :host selectors are allowed\\n ***\\n\\n\\nProblems with the current approach.\\n\\n1. Direction can be applied only on document level, because mixin prepends theme class,\\nwhich placed on the body.\\n2. *.component.scss styles should be in :host selector. Otherwise angular will add host\\nattribute to [dir=rtl] attribute as well.\\n\\n\\nGeneral problems.\\n\\nLtr is default document direction, but for proper work of nb-ltr (means ltr only),\\n[dir=ltr] should be specified at least somewhere. ':not([dir=rtl]' not applicable here,\\nbecause it's satisfy any parent, that don't have [dir=rtl] attribute.\\nPrevious approach was to use single rtl mixin and reset ltr properties to initial value.\\nBut sometimes it's hard to find, what the previous value should be. And such mixin call looks too verbose.\\n*/\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This mixin generates keyfames.\\n * Because of all keyframes can't be scoped,\\n * we need to puts unique name in each btn-pulse call.\\n */\\n/*\\n\\nAccording to the specification (https://www.w3.org/TR/css-scoping-1/#host-selector)\\n:host and :host-context are pseudo-classes. So we assume they could be combined,\\nlike other pseudo-classes, even same ones.\\nFor example: ':nth-of-type(2n):nth-of-type(even)'.\\n\\nIdeal solution would be to prepend any selector with :host-context([dir=rtl]).\\nThen nebular components will behave as an html element and respond to [dir] attribute on any level,\\nso direction could be overridden on any component level.\\n\\nImplementation code:\\n\\n@mixin nb-rtl() {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n @at-root {selector-append(':host-context([dir=rtl])', &)} {\\n @content;\\n }\\n}\\n\\nAnd when we call it somewhere:\\n\\n:host {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n:host-context(...) {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n\\nResult will look like:\\n\\n:host-context([dir=rtl]):host .some-class {\\n ...\\n}\\n:host-context([dir=rtl]):host-context(...) .some-class {\\n ...\\n}\\n\\n*\\n Side note:\\n :host-context():host selector are valid. https://lists.w3.org/Archives/Public/www-style/2015Feb/0305.html\\n\\n :host-context([dir=rtl]):host-context(...) should match any permutation,\\n so order is not important.\\n*\\n\\n\\nCurrently, there're two problems with this approach:\\n\\nFirst, is that we can't combine :host, :host-context. Angular bugs #14349, #19199.\\nFor the moment of writing, the only possible way is:\\n:host {\\n :host-context(...) {\\n ...\\n }\\n}\\nIt doesn't work for us because mixin could be called somewhere deeper, like:\\n:host {\\n p {\\n @include nb-rtl() { ... }\\n }\\n}\\nWe are not able to go up to :host level to place content passed to mixin.\\n\\nThe second problem is that we only can be sure that we appending :host-context([dir=rtl]) to another\\n:host/:host-context pseudo-class when called in theme files (*.theme.scss).\\n *\\n Side note:\\n Currently, nb-install-component uses another approach where :host prepended with the theme name\\n (https://github.com/angular/angular/blob/5b96078624b0a4760f2dbcf6fdf0bd62791be5bb/packages/compiler/src/shadow_css.ts#L441),\\n but it was made to be able to use current realization of rtl and it can be rewritten back to\\n :host-context($theme) once we will be able to use multiple shadow selectors.\\n *\\nBut when it's called in *.component.scss we can't be sure, that selector starts with :host/:host-context,\\nbecause angular allows omitting pseudo-classes if we don't need to style :host component itself.\\nWe can break such selectors, by just appending :host-context([dir=rtl]) to them.\\n ***\\n Possible solution\\n check if we in theme by some theme variables and if so append, otherwise nest like\\n @at-root :host-context([dir=rtl]) {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n {&} {\\n @content;\\n }\\n }\\n What if :host specified? Can we add space in :host-context(...) :host?\\n Or maybe add :host selector anyway? If multiple :host selectors are allowed\\n ***\\n\\n\\nProblems with the current approach.\\n\\n1. Direction can be applied only on document level, because mixin prepends theme class,\\nwhich placed on the body.\\n2. *.component.scss styles should be in :host selector. Otherwise angular will add host\\nattribute to [dir=rtl] attribute as well.\\n\\n\\nGeneral problems.\\n\\nLtr is default document direction, but for proper work of nb-ltr (means ltr only),\\n[dir=ltr] should be specified at least somewhere. ':not([dir=rtl]' not applicable here,\\nbecause it's satisfy any parent, that don't have [dir=rtl] attribute.\\nPrevious approach was to use single rtl mixin and reset ltr properties to initial value.\\nBut sometimes it's hard to find, what the previous value should be. And such mixin call looks too verbose.\\n*/\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This mixin generates keyfames.\\n * Because of all keyframes can't be scoped,\\n * we need to puts unique name in each btn-pulse call.\\n */\\n/*\\n\\nAccording to the specification (https://www.w3.org/TR/css-scoping-1/#host-selector)\\n:host and :host-context are pseudo-classes. So we assume they could be combined,\\nlike other pseudo-classes, even same ones.\\nFor example: ':nth-of-type(2n):nth-of-type(even)'.\\n\\nIdeal solution would be to prepend any selector with :host-context([dir=rtl]).\\nThen nebular components will behave as an html element and respond to [dir] attribute on any level,\\nso direction could be overridden on any component level.\\n\\nImplementation code:\\n\\n@mixin nb-rtl() {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n @at-root {selector-append(':host-context([dir=rtl])', &)} {\\n @content;\\n }\\n}\\n\\nAnd when we call it somewhere:\\n\\n:host {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n:host-context(...) {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n\\nResult will look like:\\n\\n:host-context([dir=rtl]):host .some-class {\\n ...\\n}\\n:host-context([dir=rtl]):host-context(...) .some-class {\\n ...\\n}\\n\\n*\\n Side note:\\n :host-context():host selector are valid. https://lists.w3.org/Archives/Public/www-style/2015Feb/0305.html\\n\\n :host-context([dir=rtl]):host-context(...) should match any permutation,\\n so order is not important.\\n*\\n\\n\\nCurrently, there're two problems with this approach:\\n\\nFirst, is that we can't combine :host, :host-context. Angular bugs #14349, #19199.\\nFor the moment of writing, the only possible way is:\\n:host {\\n :host-context(...) {\\n ...\\n }\\n}\\nIt doesn't work for us because mixin could be called somewhere deeper, like:\\n:host {\\n p {\\n @include nb-rtl() { ... }\\n }\\n}\\nWe are not able to go up to :host level to place content passed to mixin.\\n\\nThe second problem is that we only can be sure that we appending :host-context([dir=rtl]) to another\\n:host/:host-context pseudo-class when called in theme files (*.theme.scss).\\n *\\n Side note:\\n Currently, nb-install-component uses another approach where :host prepended with the theme name\\n (https://github.com/angular/angular/blob/5b96078624b0a4760f2dbcf6fdf0bd62791be5bb/packages/compiler/src/shadow_css.ts#L441),\\n but it was made to be able to use current realization of rtl and it can be rewritten back to\\n :host-context($theme) once we will be able to use multiple shadow selectors.\\n *\\nBut when it's called in *.component.scss we can't be sure, that selector starts with :host/:host-context,\\nbecause angular allows omitting pseudo-classes if we don't need to style :host component itself.\\nWe can break such selectors, by just appending :host-context([dir=rtl]) to them.\\n ***\\n Possible solution\\n check if we in theme by some theme variables and if so append, otherwise nest like\\n @at-root :host-context([dir=rtl]) {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n {&} {\\n @content;\\n }\\n }\\n What if :host specified? Can we add space in :host-context(...) :host?\\n Or maybe add :host selector anyway? If multiple :host selectors are allowed\\n ***\\n\\n\\nProblems with the current approach.\\n\\n1. Direction can be applied only on document level, because mixin prepends theme class,\\nwhich placed on the body.\\n2. *.component.scss styles should be in :host selector. Otherwise angular will add host\\nattribute to [dir=rtl] attribute as well.\\n\\n\\nGeneral problems.\\n\\nLtr is default document direction, but for proper work of nb-ltr (means ltr only),\\n[dir=ltr] should be specified at least somewhere. ':not([dir=rtl]' not applicable here,\\nbecause it's satisfy any parent, that don't have [dir=rtl] attribute.\\nPrevious approach was to use single rtl mixin and reset ltr properties to initial value.\\nBut sometimes it's hard to find, what the previous value should be. And such mixin call looks too verbose.\\n*/\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This mixin generates keyfames.\\n * Because of all keyframes can't be scoped,\\n * we need to puts unique name in each btn-pulse call.\\n */\\n/*\\n\\nAccording to the specification (https://www.w3.org/TR/css-scoping-1/#host-selector)\\n:host and :host-context are pseudo-classes. So we assume they could be combined,\\nlike other pseudo-classes, even same ones.\\nFor example: ':nth-of-type(2n):nth-of-type(even)'.\\n\\nIdeal solution would be to prepend any selector with :host-context([dir=rtl]).\\nThen nebular components will behave as an html element and respond to [dir] attribute on any level,\\nso direction could be overridden on any component level.\\n\\nImplementation code:\\n\\n@mixin nb-rtl() {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n @at-root {selector-append(':host-context([dir=rtl])', &)} {\\n @content;\\n }\\n}\\n\\nAnd when we call it somewhere:\\n\\n:host {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n:host-context(...) {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n\\nResult will look like:\\n\\n:host-context([dir=rtl]):host .some-class {\\n ...\\n}\\n:host-context([dir=rtl]):host-context(...) .some-class {\\n ...\\n}\\n\\n*\\n Side note:\\n :host-context():host selector are valid. https://lists.w3.org/Archives/Public/www-style/2015Feb/0305.html\\n\\n :host-context([dir=rtl]):host-context(...) should match any permutation,\\n so order is not important.\\n*\\n\\n\\nCurrently, there're two problems with this approach:\\n\\nFirst, is that we can't combine :host, :host-context. Angular bugs #14349, #19199.\\nFor the moment of writing, the only possible way is:\\n:host {\\n :host-context(...) {\\n ...\\n }\\n}\\nIt doesn't work for us because mixin could be called somewhere deeper, like:\\n:host {\\n p {\\n @include nb-rtl() { ... }\\n }\\n}\\nWe are not able to go up to :host level to place content passed to mixin.\\n\\nThe second problem is that we only can be sure that we appending :host-context([dir=rtl]) to another\\n:host/:host-context pseudo-class when called in theme files (*.theme.scss).\\n *\\n Side note:\\n Currently, nb-install-component uses another approach where :host prepended with the theme name\\n (https://github.com/angular/angular/blob/5b96078624b0a4760f2dbcf6fdf0bd62791be5bb/packages/compiler/src/shadow_css.ts#L441),\\n but it was made to be able to use current realization of rtl and it can be rewritten back to\\n :host-context($theme) once we will be able to use multiple shadow selectors.\\n *\\nBut when it's called in *.component.scss we can't be sure, that selector starts with :host/:host-context,\\nbecause angular allows omitting pseudo-classes if we don't need to style :host component itself.\\nWe can break such selectors, by just appending :host-context([dir=rtl]) to them.\\n ***\\n Possible solution\\n check if we in theme by some theme variables and if so append, otherwise nest like\\n @at-root :host-context([dir=rtl]) {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n {&} {\\n @content;\\n }\\n }\\n What if :host specified? Can we add space in :host-context(...) :host?\\n Or maybe add :host selector anyway? If multiple :host selectors are allowed\\n ***\\n\\n\\nProblems with the current approach.\\n\\n1. Direction can be applied only on document level, because mixin prepends theme class,\\nwhich placed on the body.\\n2. *.component.scss styles should be in :host selector. Otherwise angular will add host\\nattribute to [dir=rtl] attribute as well.\\n\\n\\nGeneral problems.\\n\\nLtr is default document direction, but for proper work of nb-ltr (means ltr only),\\n[dir=ltr] should be specified at least somewhere. ':not([dir=rtl]' not applicable here,\\nbecause it's satisfy any parent, that don't have [dir=rtl] attribute.\\nPrevious approach was to use single rtl mixin and reset ltr properties to initial value.\\nBut sometimes it's hard to find, what the previous value should be. And such mixin call looks too verbose.\\n*/\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This mixin generates keyfames.\\n * Because of all keyframes can't be scoped,\\n * we need to puts unique name in each btn-pulse call.\\n */\\n/*\\n\\nAccording to the specification (https://www.w3.org/TR/css-scoping-1/#host-selector)\\n:host and :host-context are pseudo-classes. So we assume they could be combined,\\nlike other pseudo-classes, even same ones.\\nFor example: ':nth-of-type(2n):nth-of-type(even)'.\\n\\nIdeal solution would be to prepend any selector with :host-context([dir=rtl]).\\nThen nebular components will behave as an html element and respond to [dir] attribute on any level,\\nso direction could be overridden on any component level.\\n\\nImplementation code:\\n\\n@mixin nb-rtl() {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n @at-root {selector-append(':host-context([dir=rtl])', &)} {\\n @content;\\n }\\n}\\n\\nAnd when we call it somewhere:\\n\\n:host {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n:host-context(...) {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n\\nResult will look like:\\n\\n:host-context([dir=rtl]):host .some-class {\\n ...\\n}\\n:host-context([dir=rtl]):host-context(...) .some-class {\\n ...\\n}\\n\\n*\\n Side note:\\n :host-context():host selector are valid. https://lists.w3.org/Archives/Public/www-style/2015Feb/0305.html\\n\\n :host-context([dir=rtl]):host-context(...) should match any permutation,\\n so order is not important.\\n*\\n\\n\\nCurrently, there're two problems with this approach:\\n\\nFirst, is that we can't combine :host, :host-context. Angular bugs #14349, #19199.\\nFor the moment of writing, the only possible way is:\\n:host {\\n :host-context(...) {\\n ...\\n }\\n}\\nIt doesn't work for us because mixin could be called somewhere deeper, like:\\n:host {\\n p {\\n @include nb-rtl() { ... }\\n }\\n}\\nWe are not able to go up to :host level to place content passed to mixin.\\n\\nThe second problem is that we only can be sure that we appending :host-context([dir=rtl]) to another\\n:host/:host-context pseudo-class when called in theme files (*.theme.scss).\\n *\\n Side note:\\n Currently, nb-install-component uses another approach where :host prepended with the theme name\\n (https://github.com/angular/angular/blob/5b96078624b0a4760f2dbcf6fdf0bd62791be5bb/packages/compiler/src/shadow_css.ts#L441),\\n but it was made to be able to use current realization of rtl and it can be rewritten back to\\n :host-context($theme) once we will be able to use multiple shadow selectors.\\n *\\nBut when it's called in *.component.scss we can't be sure, that selector starts with :host/:host-context,\\nbecause angular allows omitting pseudo-classes if we don't need to style :host component itself.\\nWe can break such selectors, by just appending :host-context([dir=rtl]) to them.\\n ***\\n Possible solution\\n check if we in theme by some theme variables and if so append, otherwise nest like\\n @at-root :host-context([dir=rtl]) {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n {&} {\\n @content;\\n }\\n }\\n What if :host specified? Can we add space in :host-context(...) :host?\\n Or maybe add :host selector anyway? If multiple :host selectors are allowed\\n ***\\n\\n\\nProblems with the current approach.\\n\\n1. Direction can be applied only on document level, because mixin prepends theme class,\\nwhich placed on the body.\\n2. *.component.scss styles should be in :host selector. Otherwise angular will add host\\nattribute to [dir=rtl] attribute as well.\\n\\n\\nGeneral problems.\\n\\nLtr is default document direction, but for proper work of nb-ltr (means ltr only),\\n[dir=ltr] should be specified at least somewhere. ':not([dir=rtl]' not applicable here,\\nbecause it's satisfy any parent, that don't have [dir=rtl] attribute.\\nPrevious approach was to use single rtl mixin and reset ltr properties to initial value.\\nBut sometimes it's hard to find, what the previous value should be. And such mixin call looks too verbose.\\n*/\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/**\\n * This mixin generates keyfames.\\n * Because of all keyframes can't be scoped,\\n * we need to puts unique name in each btn-pulse call.\\n */\\n/*\\n\\nAccording to the specification (https://www.w3.org/TR/css-scoping-1/#host-selector)\\n:host and :host-context are pseudo-classes. So we assume they could be combined,\\nlike other pseudo-classes, even same ones.\\nFor example: ':nth-of-type(2n):nth-of-type(even)'.\\n\\nIdeal solution would be to prepend any selector with :host-context([dir=rtl]).\\nThen nebular components will behave as an html element and respond to [dir] attribute on any level,\\nso direction could be overridden on any component level.\\n\\nImplementation code:\\n\\n@mixin nb-rtl() {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n @at-root {selector-append(':host-context([dir=rtl])', &)} {\\n @content;\\n }\\n}\\n\\nAnd when we call it somewhere:\\n\\n:host {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n:host-context(...) {\\n .some-class {\\n @include nb-rtl() {\\n ...\\n }\\n }\\n}\\n\\nResult will look like:\\n\\n:host-context([dir=rtl]):host .some-class {\\n ...\\n}\\n:host-context([dir=rtl]):host-context(...) .some-class {\\n ...\\n}\\n\\n*\\n Side note:\\n :host-context():host selector are valid. https://lists.w3.org/Archives/Public/www-style/2015Feb/0305.html\\n\\n :host-context([dir=rtl]):host-context(...) should match any permutation,\\n so order is not important.\\n*\\n\\n\\nCurrently, there're two problems with this approach:\\n\\nFirst, is that we can't combine :host, :host-context. Angular bugs #14349, #19199.\\nFor the moment of writing, the only possible way is:\\n:host {\\n :host-context(...) {\\n ...\\n }\\n}\\nIt doesn't work for us because mixin could be called somewhere deeper, like:\\n:host {\\n p {\\n @include nb-rtl() { ... }\\n }\\n}\\nWe are not able to go up to :host level to place content passed to mixin.\\n\\nThe second problem is that we only can be sure that we appending :host-context([dir=rtl]) to another\\n:host/:host-context pseudo-class when called in theme files (*.theme.scss).\\n *\\n Side note:\\n Currently, nb-install-component uses another approach where :host prepended with the theme name\\n (https://github.com/angular/angular/blob/5b96078624b0a4760f2dbcf6fdf0bd62791be5bb/packages/compiler/src/shadow_css.ts#L441),\\n but it was made to be able to use current realization of rtl and it can be rewritten back to\\n :host-context($theme) once we will be able to use multiple shadow selectors.\\n *\\nBut when it's called in *.component.scss we can't be sure, that selector starts with :host/:host-context,\\nbecause angular allows omitting pseudo-classes if we don't need to style :host component itself.\\nWe can break such selectors, by just appending :host-context([dir=rtl]) to them.\\n ***\\n Possible solution\\n check if we in theme by some theme variables and if so append, otherwise nest like\\n @at-root :host-context([dir=rtl]) {\\n // add # to scss interpolation statement.\\n // it works in comments and we can't use it here\\n {&} {\\n @content;\\n }\\n }\\n What if :host specified? Can we add space in :host-context(...) :host?\\n Or maybe add :host selector anyway? If multiple :host selectors are allowed\\n ***\\n\\n\\nProblems with the current approach.\\n\\n1. Direction can be applied only on document level, because mixin prepends theme class,\\nwhich placed on the body.\\n2. *.component.scss styles should be in :host selector. Otherwise angular will add host\\nattribute to [dir=rtl] attribute as well.\\n\\n\\nGeneral problems.\\n\\nLtr is default document direction, but for proper work of nb-ltr (means ltr only),\\n[dir=ltr] should be specified at least somewhere. ':not([dir=rtl]' not applicable here,\\nbecause it's satisfy any parent, that don't have [dir=rtl] attribute.\\nPrevious approach was to use single rtl mixin and reset ltr properties to initial value.\\nBut sometimes it's hard to find, what the previous value should be. And such mixin call looks too verbose.\\n*/\\n/*!\\n * @license\\n * Copyright Akveo. All Rights Reserved.\\n * Licensed under the MIT License. See License.txt in the project root for license information.\\n */\\n/*\\n :host can be prefixed\\n https://github.com/angular/angular/blob/8d0ee34939f14c07876d222c25b405ed458a34d3/packages/compiler/src/shadow_css.ts#L441\\n\\n We have to use :host insted of :host-context($theme), to be able to prefix theme class\\n with something defined inside of @content, by prefixing &.\\n For example this scss code:\\n .nb-theme-default {\\n .some-selector & {\\n ...\\n }\\n }\\n Will result in next css:\\n .some-selector .nb-theme-default {\\n ...\\n }\\n\\n It doesn't work with :host-context because angular splitting it in two selectors and removes\\n prefix in one of the selectors.\\n */\\n.nb-theme-corporate :host nb-layout-column.small {\\n flex: 0.15 !important; }\\n.nb-theme-corporate :host nb-sidebar.settings-sidebar {\\n transition: width 0.3s ease;\\n width: 7.5rem;\\n overflow: hidden; }\\n.nb-theme-corporate :host nb-sidebar.settings-sidebar.collapsed {\\n width: 0; }\\n.nb-theme-corporate :host nb-sidebar.settings-sidebar.collapsed /deep/ .main-container {\\n width: 0; }\\n.nb-theme-corporate :host nb-sidebar.settings-sidebar.collapsed /deep/ .main-container .scrollable {\\n width: 7.5rem;\\n padding: 1.25rem; }\\n.nb-theme-corporate :host nb-sidebar.settings-sidebar /deep/ .main-container {\\n width: 7.5rem;\\n background: #ffffff;\\n transition: width 0.3s ease;\\n overflow: hidden; }\\n.nb-theme-corporate :host nb-sidebar.settings-sidebar /deep/ .main-container .scrollable {\\n width: 7.5rem; }\\n.nb-theme-corporate :host nb-sidebar.menu-sidebar {\\n margin-top: 2rem;\\n margin-top: 0;\\n background: transparent; }\\n.nb-theme-corporate :host nb-sidebar.menu-sidebar /deep/ .main-container {\\n height: calc(100vh - 4.75rem - 2rem) !important;\\n border: 1px solid #cdd5dc;\\n height: calc(100vh - 4.75rem) !important; }\\n[dir=ltr] .nb-theme-corporate :host nb-sidebar.menu-sidebar /deep/ .main-container {\\n border-top-right-radius: 0.17rem; }\\n[dir=rtl] .nb-theme-corporate :host nb-sidebar.menu-sidebar /deep/ .main-container {\\n border-top-left-radius: 0.17rem; }\\n.nb-theme-corporate :host nb-sidebar.menu-sidebar /deep/ .scrollable {\\n padding-top: 0; }\\n.nb-theme-corporate :host nb-sidebar.menu-sidebar /deep/ .scrollable .menu-item:first-child {\\n border-top: none; }\\n.nb-theme-corporate :host nb-sidebar.menu-sidebar /deep/ .scrollable .menu-item :hover {\\n color: blue; }\\n.nb-theme-corporate :host nb-sidebar.menu-sidebar /deep/ nb-sidebar-header {\\n padding-bottom: 0.5rem;\\n text-align: center; }\\n.nb-theme-corporate :host nb-sidebar.menu-sidebar .main-btn {\\n padding: 0.75rem 2.5rem;\\n margin-top: -2rem;\\n font-weight: bold;\\n transition: padding 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.48);\\n border-radius: 0.17rem; }\\n.nb-theme-corporate :host nb-sidebar.menu-sidebar .main-btn i {\\n font-size: 2rem;\\n text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); }\\n[dir=ltr] .nb-theme-corporate :host nb-sidebar.menu-sidebar .main-btn span {\\n padding-left: 0.25rem; }\\n[dir=rtl] .nb-theme-corporate :host nb-sidebar.menu-sidebar .main-btn span {\\n padding-right: 0.25rem; }\\n.nb-theme-corporate :host nb-sidebar.menu-sidebar .main-btn i, .nb-theme-corporate :host nb-sidebar.menu-sidebar .main-btn span {\\n vertical-align: middle; }\\n.nb-theme-corporate :host nb-sidebar.menu-sidebar.compacted /deep/ nb-sidebar-header {\\n padding-left: 0;\\n padding-right: 0; }\\n.nb-theme-corporate :host nb-sidebar.menu-sidebar.compacted .main-btn {\\n width: 46px;\\n height: 44px;\\n padding: 0.375rem;\\n border-radius: 5px;\\n transition: none; }\\n.nb-theme-corporate :host nb-sidebar.menu-sidebar.compacted .main-btn span {\\n display: none; }\\n@media (max-width: 399.98px) {\\n .nb-theme-corporate :host .main-content {\\n padding: 0.75rem !important; } }\\n@media (max-width: 767.98px) {\\n .nb-theme-corporate :host nb-sidebar.menu-sidebar {\\n margin-top: 0; }\\n .nb-theme-corporate :host nb-sidebar.menu-sidebar /deep/ .main-container {\\n height: calc(100vh - 4.75rem) !important; }\\n [dir=ltr] .nb-theme-corporate :host nb-sidebar.menu-sidebar /deep/ .main-container {\\n border-top-right-radius: 0; }\\n [dir=rtl] .nb-theme-corporate :host nb-sidebar.menu-sidebar /deep/ .main-container {\\n border-top-left-radius: 0; }\\n .nb-theme-corporate :host nb-sidebar.menu-sidebar /deep/ .main-container .scrollable {\\n padding-top: 0; }\\n .nb-theme-corporate :host .main-btn {\\n display: none; } }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvQHRoZW1lL2xheW91dHMvb25lLWNvbHVtbi9FOlxcQW5ndWxhclxcUmVjV2ViXFxSZWNGcm9udGVuZC9ub2RlX21vZHVsZXNcXEBuZWJ1bGFyXFx0aGVtZVxcc3R5bGVzXFxfdGhlbWluZy5zY3NzIiwic3JjL2FwcC9AdGhlbWUvbGF5b3V0cy9vbmUtY29sdW1uL0U6XFxBbmd1bGFyXFxSZWNXZWJcXFJlY0Zyb250ZW5kL25vZGVfbW9kdWxlc1xcQG5lYnVsYXJcXHRoZW1lXFxzdHlsZXNcXGNvcmVcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvQHRoZW1lL2xheW91dHMvb25lLWNvbHVtbi9FOlxcQW5ndWxhclxcUmVjV2ViXFxSZWNGcm9udGVuZC9ub2RlX21vZHVsZXNcXEBuZWJ1bGFyXFx0aGVtZVxcc3R5bGVzXFxjb3JlXFxfZnVuY3Rpb25zLnNjc3MiLCJzcmMvYXBwL0B0aGVtZS9sYXlvdXRzL29uZS1jb2x1bW4vRTpcXEFuZ3VsYXJcXFJlY1dlYlxcUmVjRnJvbnRlbmQvbm9kZV9tb2R1bGVzXFxAbmVidWxhclxcdGhlbWVcXHN0eWxlc1xcdGhlbWVzXFxfZGVmYXVsdC5zY3NzIiwic3JjL2FwcC9AdGhlbWUvbGF5b3V0cy9vbmUtY29sdW1uL0U6XFxBbmd1bGFyXFxSZWNXZWJcXFJlY0Zyb250ZW5kL25vZGVfbW9kdWxlc1xcQG5lYnVsYXJcXHRoZW1lXFxzdHlsZXNcXHRoZW1lc1xcX2Nvc21pYy5zY3NzIiwic3JjL2FwcC9AdGhlbWUvbGF5b3V0cy9vbmUtY29sdW1uL0U6XFxBbmd1bGFyXFxSZWNXZWJcXFJlY0Zyb250ZW5kL25vZGVfbW9kdWxlc1xcQG5lYnVsYXJcXHRoZW1lXFxzdHlsZXNcXHRoZW1lc1xcX2NvcnBvcmF0ZS5zY3NzIiwic3JjL2FwcC9AdGhlbWUvbGF5b3V0cy9vbmUtY29sdW1uL0U6XFxBbmd1bGFyXFxSZWNXZWJcXFJlY0Zyb250ZW5kL25vZGVfbW9kdWxlc1xcQG5lYnVsYXJcXHRoZW1lXFxzdHlsZXNcXGdsb2JhbFxcX2JyZWFrcG9pbnRzLnNjc3MiLCJzcmMvYXBwL0B0aGVtZS9sYXlvdXRzL29uZS1jb2x1bW4vRTpcXEFuZ3VsYXJcXFJlY1dlYlxcUmVjRnJvbnRlbmQvc3JjXFxhcHBcXEB0aGVtZVxcbGF5b3V0c1xcb25lLWNvbHVtblxcb25lLWNvbHVtbi5sYXlvdXQuc2NzcyIsInNyYy9hcHAvQHRoZW1lL2xheW91dHMvb25lLWNvbHVtbi9FOlxcQW5ndWxhclxcUmVjV2ViXFxSZWNGcm9udGVuZC9zcmNcXGFwcFxcQHRoZW1lXFxzdHlsZXNcXHRoZW1lcy5zY3NzIiwic3JjL2FwcC9AdGhlbWUvbGF5b3V0cy9vbmUtY29sdW1uL29uZS1jb2x1bW4ubGF5b3V0LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUdIOztHQUVHO0FDVEg7Ozs7R0FJRztBQXNLSDs7OztHQUlHO0FBc0JIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUhFO0FDdlRGOzs7O0dBSUc7QUNKSDs7OztHQUlHO0FESkg7Ozs7R0FJRztBREpIOzs7O0dBSUc7QUFzS0g7Ozs7R0FJRztBQXNCSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1IRTtBR3ZURjs7OztHQUlHO0FGSkg7Ozs7R0FJRztBREpIOzs7O0dBSUc7QUFzS0g7Ozs7R0FJRztBQXNCSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1IRTtBRXZURjs7OztHQUlHO0FESkg7Ozs7R0FJRztBREpIOzs7O0dBSUc7QUFzS0g7Ozs7R0FJRztBQXNCSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1IRTtBSXZURjs7OztHQUlHO0FISkg7Ozs7R0FJRztBREpIOzs7O0dBSUc7QUFzS0g7Ozs7R0FJRztBQXNCSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1IRTtBRXZURjs7OztHQUlHO0FESkg7Ozs7R0FJRztBREpIOzs7O0dBSUc7QUFzS0g7Ozs7R0FJRztBQXNCSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1IRTtBS3ZURjs7OztHQUlHO0FOOEdDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BbUJFO0FPaElKO0VBQ0Usc0JBQXFCLEVBQ3RCO0FBRUQ7RUFHRSw0QkFBMkI7RUFDM0IsY0FIc0I7RUFJdEIsaUJBQWdCLEVBNkJqQjtBQTNCQztJQUNFLFNBQVEsRUFVVDtBQVJDO01BQ0UsU0FBUSxFQU1UO0FBSkM7UUFDRSxjQWJnQjtRQWNoQixpQkFBZ0IsRUFDakI7QUFJTDtJQUNFLGNBcEJvQjtJQXFCcEIsb0JKR2E7SUlGYiw0QkFBMkI7SUFDM0IsaUJBQWdCLEVBU2pCO0FBUEM7TUFDRSxjQTFCa0IsRUEyQm5CO0FBUUw7RUFFRSxpQkNyQ3NCO0VEeUNwQixjQUFhO0VBd0NmLHdCQUF1QixFQTZDeEI7QUFsRkM7SUFDRSxnREFDNkc7SUFLM0csMEJGeENZO0lFeUNaLHlDQUMyRSxFQUU5RTtBRXl5QkQ7TVI5aUJFLGlDSXJTVyxFSnlTZDtBUTRpQkM7TVJoakJFLGdDSXJTVyxFSnlTZDtBTTdQQztJQUVJLGVBQWMsRUFlakI7QUFiRztNQUVFLGlCQUFnQixFQUNqQjtBQUlDO01BRUUsWUFBVyxFQUNaO0FBS1A7SUFDRSx1QkFBc0I7SUFDdEIsbUJBQWtCLEVBQ25CO0FBSUQ7SUFDRSx3QkFBdUI7SUFDdkIsa0JBQWlCO0lBQ2pCLGtCQUFpQjtJQUNqQiw4REFBNkQ7SUFHM0QsdUJGN0VTLEVFNEZaO0FBWkM7TUFDRSxnQkFBZTtNQUNmLDBDQUF5QyxFQUMxQztBRXN4Qkg7TVJwa0JFLHNCTWhOdUMsRU5vTjFDO0FRa2tCQztNUnRrQkUsdUJNL013QyxFTm1OM0M7QU1oTkc7TUFDRSx1QkFBc0IsRUFDdkI7QUFLRDtJQUNFLGdCQUFlO0lBQ2YsaUJBQWdCLEVBQ2pCO0FBRUQ7SUFDRSxZQUFXO0lBQ1gsYUFBWTtJQUNaLGtCQUFpQjtJQUNqQixtQkFBa0I7SUFDbEIsaUJBQWdCLEVBS2pCO0FBSEM7TUFDRSxjQUFhLEVBQ2Q7QUQ3RUw7RUNtRkE7SUFDRSw0QkFBMkIsRUFFNUIsRUFBQTtBRHRGRDtFQzJGQTtJQUVFLGNBQWEsRUFXZDtJQVRDO01BQ0UseUNBQWlGLEVBT2xGO01FNHZCRDtRUi9sQkEsMkJNbks0QyxFTnVLL0M7TVE2bEJHO1FSam1CQSwwQk1sSzJDLEVOc0s5QztNTXBLSztRQUNFLGVBQWMsRUFDZjtFQUlMO0lBQ0UsY0FBYSxFQUNkLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9AdGhlbWUvbGF5b3V0cy9vbmUtY29sdW1uL29uZS1jb2x1bW4ubGF5b3V0LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWt2ZW8uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICovXG5cblxuLyoqXG4gKiBUaGlzIGlzIGEgc3RhcnRpbmcgcG9pbnQgd2hlcmUgd2UgZGVjbGFyZSB0aGUgbWFwcyBvZiB0aGVtZXMgYW5kIGdsb2JhbGx5IGF2YWlsYWJsZSBmdW5jdGlvbnMvbWl4aW5zXG4gKi9cblxuQGltcG9ydCAnY29yZS9taXhpbnMnO1xuQGltcG9ydCAnY29yZS9mdW5jdGlvbnMnO1xuXG4kbmItZW5hYmxlZC10aGVtZXM6ICgpICFnbG9iYWw7XG4kbmItZW5hYmxlLWNzcy12YXJpYWJsZXM6IGZhbHNlICFnbG9iYWw7XG5cbiRuYi10aGVtZXM6ICgpICFnbG9iYWw7XG4kbmItdGhlbWVzLW5vbi1wcm9jZXNzZWQ6ICgpICFnbG9iYWw7XG4kbmItdGhlbWVzLWV4cG9ydDogKCkgIWdsb2JhbDtcblxuQGZ1bmN0aW9uIG5iLXRoZW1lKCRrZXkpIHtcbiAgQHJldHVybiBtYXAtZ2V0KCR0aGVtZSwgJGtleSk7XG59XG5cbkBmdW5jdGlvbiBuYi1nZXQtdmFsdWUoJHRoZW1lLCAka2V5LCAkdmFsdWUpIHtcbiAgQGlmICh0eXBlLW9mKCR2YWx1ZSkgPT0gJ3N0cmluZycpIHtcbiAgICAkdG1wOiBtYXAtZ2V0KCR0aGVtZSwgJHZhbHVlKTtcblxuICAgIEBpZiAoJHRtcCAhPSBudWxsKSB7XG4gICAgICBAcmV0dXJuIG5iLWdldC12YWx1ZSgkdGhlbWUsICR2YWx1ZSwgJHRtcCk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBtYXAtZ2V0KCR0aGVtZSwgJGtleSk7XG59XG5cbkBmdW5jdGlvbiBjb252ZXJ0LXRvLWNzcy12YXJpYWJsZXMoJHZhcmlhYmxlcykge1xuICAkcmVzdWx0OiAoKTtcbiAgQGVhY2ggJHZhciwgJHZhbHVlIGluICR2YXJpYWJsZXMge1xuICAgICRyZXN1bHQ6IG1hcC1zZXQoJHJlc3VsdCwgJHZhciwgJy0tdmFyKCN7JHZhcn0pJyk7XG4gIH1cblxuICBAZGVidWcgJHJlc3VsdDtcbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG5AZnVuY3Rpb24gc2V0LWdsb2JhbC10aGVtZS12YXJzKCR0aGVtZSwgJHRoZW1lLW5hbWUpIHtcbiAgJHRoZW1lOiAkdGhlbWUgIWdsb2JhbDtcbiAgJHRoZW1lLW5hbWU6ICR0aGVtZS1uYW1lICFnbG9iYWw7XG4gIEBpZiAoJG5iLWVuYWJsZS1jc3MtdmFyaWFibGVzKSB7XG4gICAgJHRoZW1lOiBjb252ZXJ0LXRvLWNzcy12YXJpYWJsZXMoJHRoZW1lKSAhZ2xvYmFsO1xuICB9XG4gIEByZXR1cm4gJHRoZW1lO1xufVxuXG5AZnVuY3Rpb24gbmItcmVnaXN0ZXItdGhlbWUoJHRoZW1lLCAkbmFtZSwgJGRlZmF1bHQ6IG51bGwpIHtcblxuICAkdGhlbWUtZGF0YTogKCk7XG5cblxuICBAaWYgKCRkZWZhdWx0ICE9IG51bGwpIHtcblxuICAgICR0aGVtZTogbWFwLW1lcmdlKG1hcC1nZXQoJG5iLXRoZW1lcy1ub24tcHJvY2Vzc2VkLCAkZGVmYXVsdCksICR0aGVtZSk7XG4gICAgJG5iLXRoZW1lcy1ub24tcHJvY2Vzc2VkOiBtYXAtc2V0KCRuYi10aGVtZXMtbm9uLXByb2Nlc3NlZCwgJG5hbWUsICR0aGVtZSkgIWdsb2JhbDtcblxuICAgICR0aGVtZS1kYXRhOiBtYXAtc2V0KCR0aGVtZS1kYXRhLCBkYXRhLCAkdGhlbWUpO1xuICAgICRuYi10aGVtZXMtZXhwb3J0OiBtYXAtc2V0KCRuYi10aGVtZXMtZXhwb3J0LCAkbmFtZSwgbWFwLXNldCgkdGhlbWUtZGF0YSwgcGFyZW50LCAkZGVmYXVsdCkpICFnbG9iYWw7XG5cbiAgfSBAZWxzZSB7XG4gICAgJG5iLXRoZW1lcy1ub24tcHJvY2Vzc2VkOiBtYXAtc2V0KCRuYi10aGVtZXMtbm9uLXByb2Nlc3NlZCwgJG5hbWUsICR0aGVtZSkgIWdsb2JhbDtcblxuICAgICR0aGVtZS1kYXRhOiBtYXAtc2V0KCR0aGVtZS1kYXRhLCBkYXRhLCAkdGhlbWUpO1xuICAgICRuYi10aGVtZXMtZXhwb3J0OiBtYXAtc2V0KCRuYi10aGVtZXMtZXhwb3J0LCAkbmFtZSwgbWFwLXNldCgkdGhlbWUtZGF0YSwgcGFyZW50LCBudWxsKSkgIWdsb2JhbDtcbiAgfVxuXG4gICR0aGVtZS1wYXJzZWQ6ICgpO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJHRoZW1lIHtcbiAgICAkdGhlbWUtcGFyc2VkOiBtYXAtc2V0KCR0aGVtZS1wYXJzZWQsICRrZXksIG5iLWdldC12YWx1ZSgkdGhlbWUsICRrZXksICR2YWx1ZSkpO1xuICB9XG5cbiAgLy8gZW5hYmxlIHJpZ2h0IGF3YXkgd2hlbiBpbnN0YWxsZWRcbiAgJHRoZW1lLXBhcnNlZDogc2V0LWdsb2JhbC10aGVtZS12YXJzKCR0aGVtZS1wYXJzZWQsICRuYW1lKTtcbiAgQHJldHVybiBtYXAtc2V0KCRuYi10aGVtZXMsICRuYW1lLCAkdGhlbWUtcGFyc2VkKTtcbn1cblxuQGZ1bmN0aW9uIGdldC1lbmFibGVkLXRoZW1lcygpIHtcbiAgJHRoZW1lcy10by1pbnN0YWxsOiAoKTtcblxuICBAaWYgKGxlbmd0aCgkbmItZW5hYmxlZC10aGVtZXMpID4gMCkge1xuICAgIEBlYWNoICR0aGVtZS1uYW1lIGluICRuYi1lbmFibGVkLXRoZW1lcyB7XG4gICAgICAkdGhlbWVzLXRvLWluc3RhbGw6IG1hcC1zZXQoJHRoZW1lcy10by1pbnN0YWxsLCAkdGhlbWUtbmFtZSwgbWFwLWdldCgkbmItdGhlbWVzLCAkdGhlbWUtbmFtZSkpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJHRoZW1lcy10by1pbnN0YWxsOiAkbmItdGhlbWVzO1xuICB9XG5cbiAgQHJldHVybiAkdGhlbWVzLXRvLWluc3RhbGw7XG59XG5cbkBtaXhpbiBpbnN0YWxsLWNzcy12YXJpYWJsZXMoJHRoZW1lLW5hbWUsICR2YXJpYWJsZXMpIHtcbiAgLm5iLXRoZW1lLSN7JHRoZW1lLW5hbWV9IHtcbiAgICBAZWFjaCAkdmFyLCAkdmFsdWUgaW4gJHZhcmlhYmxlcyB7XG4gICAgICAtLSN7JHZhcn06ICR2YWx1ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVE9ETzogd2UgaGlkZSA6aG9zdCBpbnNpZGUgb2YgaXQgd2hpY2ggaXMgbm90IG9idmlvdXNcbkBtaXhpbiBuYi1pbnN0YWxsLWNvbXBvbmVudCgpIHtcblxuICAkdGhlbWVzLXRvLWluc3RhbGw6IGdldC1lbmFibGVkLXRoZW1lcygpO1xuXG4gIEBlYWNoICR0aGVtZS1uYW1lLCAkdGhlbWUgaW4gJHRoZW1lcy10by1pbnN0YWxsIHtcbiAgICAvKlxuICAgICAgOmhvc3QgY2FuIGJlIHByZWZpeGVkXG4gICAgICBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvOGQwZWUzNDkzOWYxNGMwNzg3NmQyMjJjMjViNDA1ZWQ0NThhMzRkMy9wYWNrYWdlcy9jb21waWxlci9zcmMvc2hhZG93X2Nzcy50cyNMNDQxXG5cbiAgICAgIFdlIGhhdmUgdG8gdXNlIDpob3N0IGluc3RlZCBvZiA6aG9zdC1jb250ZXh0KCR0aGVtZSksIHRvIGJlIGFibGUgdG8gcHJlZml4IHRoZW1lIGNsYXNzXG4gICAgICB3aXRoIHNvbWV0aGluZyBkZWZpbmVkIGluc2lkZSBvZiBAY29udGVudCwgYnkgcHJlZml4aW5nICYuXG4gICAgICBGb3IgZXhhbXBsZSB0aGlzIHNjc3MgY29kZTpcbiAgICAgICAgLm5iLXRoZW1lLWRlZmF1bHQge1xuICAgICAgICAgIC5zb21lLXNlbGVjdG9yICYge1xuICAgICAgICAgICAgLi4uXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBXaWxsIHJlc3VsdCBpbiBuZXh0IGNzczpcbiAgICAgICAgLnNvbWUtc2VsZWN0b3IgLm5iLXRoZW1lLWRlZmF1bHQge1xuICAgICAgICAgIC4uLlxuICAgICAgICB9XG5cbiAgICAgIEl0IGRvZXNuJ3Qgd29yayB3aXRoIDpob3N0LWNvbnRleHQgYmVjYXVzZSBhbmd1bGFyIHNwbGl0dGluZyBpdCBpbiB0d28gc2VsZWN0b3JzIGFuZCByZW1vdmVzXG4gICAgICBwcmVmaXggaW4gb25lIG9mIHRoZSBzZWxlY3RvcnMuXG4gICAgKi9cbiAgICAubmItdGhlbWUtI3skdGhlbWUtbmFtZX0gOmhvc3Qge1xuICAgICAgJHRoZW1lOiBzZXQtZ2xvYmFsLXRoZW1lLXZhcnMoJHRoZW1lLCAkdGhlbWUtbmFtZSk7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG5iLWZvci10aGVtZSgkbmFtZSkge1xuICBAaWYgKCR0aGVtZS1uYW1lID09ICRuYW1lKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIG5iLWV4Y2VwdC10aGVtZSgkbmFtZSkge1xuICBAaWYgKCR0aGVtZS1uYW1lICE9ICRuYW1lKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gVE9ETzogYW5vdGhlciBtaXhpbmcgZm9yIHRoZSBhbG1vc3Qgc2FtZSB0aGluZ1xuQG1peGluIG5iLWluc3RhbGwtcm9vdC1jb21wb25lbnQoKSB7XG4gIEB3YXJuICdgbmItaW5zdGFsbC1yb290LWNvbXBvbmVudGAgaXMgZGVwcmljYXRlZCwgcmVwbGFjZSB3aXRoIGBuYi1pbnN0YWxsLWNvbXBvbmVudGAsIGFzIGBib2R5YCBpcyByb290IGVsZW1lbnQgbm93JztcblxuICBAaW5jbHVkZSBuYi1pbnN0YWxsLWNvbXBvbmVudCgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbmItaW5zdGFsbC1nbG9iYWwoKSB7XG4gICR0aGVtZXMtdG8taW5zdGFsbDogZ2V0LWVuYWJsZWQtdGhlbWVzKCk7XG5cbiAgQGVhY2ggJHRoZW1lLW5hbWUsICR0aGVtZSBpbiAkdGhlbWVzLXRvLWluc3RhbGwge1xuICAgIC5uYi10aGVtZS0jeyR0aGVtZS1uYW1lfSB7XG4gICAgICAkdGhlbWU6IHNldC1nbG9iYWwtdGhlbWUtdmFycygkdGhlbWUsICR0aGVtZS1uYW1lKTtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuXG5AbWl4aW4gbmItc2Nyb2xsYmFycygkZmcsICRiZywgJHNpemUsICRib3JkZXItcmFkaXVzOiAkc2l6ZSAvIDIpIHtcbiAgOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6ICRzaXplO1xuICAgIGhlaWdodDogJHNpemU7XG4gIH1cblxuICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiAkZmc7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICB9XG5cbiAgOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgYmFja2dyb3VuZDogJGJnO1xuICB9XG5cbiAgLy8gVE9ETzogcmVtb3ZlXG4gIC8vIEZvciBJbnRlcm5ldCBFeHBsb3JlclxuICBzY3JvbGxiYXItZmFjZS1jb2xvcjogJGZnO1xuICBzY3JvbGxiYXItdHJhY2stY29sb3I6ICRiZztcbn1cblxuQG1peGluIG5iLXJhZGlhbC1ncmFkaWVudCgkY29sb3ItMSwgJGNvbG9yLTIsICRjb2xvci0zKSB7XG4gIGJhY2tncm91bmQ6ICRjb2xvci0yOyAvKiBPbGQgYnJvd3NlcnMgKi9cbiAgYmFja2dyb3VuZDogLW1vei1yYWRpYWwtZ3JhZGllbnQoYm90dG9tLCBlbGxpcHNlIGNvdmVyLCAkY29sb3ItMSAwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29sb3ItMiA0NSUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvbG9yLTMgMTAwJSk7IC8qIEZGMy42LTE1ICovXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGJvdHRvbSwgZWxsaXBzZSBjb3ZlciwgJGNvbG9yLTEgMCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvbG9yLTIgNDUlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb2xvci0zIDEwMCUpOyAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCBib3R0b20sICRjb2xvci0xIDAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb2xvci0yIDQ1JSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29sb3ItMyAxMDAlKTsgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXG4gIGZpbHRlcjogcHJvZ2lkOmR4aW1hZ2V0cmFuc2Zvcm0ubWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyRjb2xvci0xJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kQ29sb3JzdHI9JyRjb2xvci0zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JhZGllbnRUeXBlPTEpOyAvKiBJRTYtOSBmYWxsYmFjayBvbiBob3Jpem9udGFsIGdyYWRpZW50ICovXG59XG5cbkBtaXhpbiBuYi1yaWdodC1ncmFkaWVudCgkbGVmdC1jb2xvciwgJHJpZ2h0LWNvbG9yKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJGxlZnQtY29sb3IsICRyaWdodC1jb2xvcik7XG59XG5cbkBtaXhpbiBuYi1oZWFkaW5ncygkZnJvbTogMSwgJHRvOiA2KSB7XG4gIEBmb3IgJGkgZnJvbSAkZnJvbSB0aHJvdWdoICR0byB7XG4gICAgaCN7JGl9IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGhvdmVyLWZvY3VzLWFjdGl2ZSB7XG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlLFxuICAmOmhvdmVyIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gY2VudGVyLWhvcml6b250YWwtYWJzb2x1dGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xuICBsZWZ0OiA1MCU7XG59XG5cbkBtaXhpbiBpbnN0YWxsLXRodW1iKCkge1xuICAkdGh1bWItc2VsZWN0b3JzOiAoXG4gICAgJzo6LXdlYmtpdC1zbGlkZXItdGh1bWInXG4gICAgJzo6LW1vei1yYW5nZS10aHVtYidcbiAgICAnOjotbXMtdGh1bWInXG4gICk7XG5cbiAgQGVhY2ggJHNlbGVjdG9yIGluICR0aHVtYi1zZWxlY3RvcnMge1xuICAgICYjeyRzZWxlY3Rvcn0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBpbnN0YWxsLXRyYWNrKCkge1xuICAkdGh1bWItc2VsZWN0b3JzOiAoXG4gICAgJzo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2snXG4gICAgJzo6LW1vei1yYW5nZS10cmFjaydcbiAgICAnOjotbXMtdHJhY2snXG4gICk7XG5cbiAgQGVhY2ggJHNlbGVjdG9yIGluICR0aHVtYi1zZWxlY3RvcnMge1xuICAgICYjeyRzZWxlY3Rvcn0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBpbnN0YWxsLXBsYWNlaG9sZGVyKCRjb2xvciwgJGZvbnQtc2l6ZSkge1xuICAkcGxhY2Vob2xkZXItc2VsZWN0b3JzOiAoXG4gICAgJzo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcidcbiAgICAnOjotbW96LXBsYWNlaG9sZGVyJ1xuICAgICc6LW1vei1wbGFjZWhvbGRlcidcbiAgICAnOi1tcy1pbnB1dC1wbGFjZWhvbGRlcidcbiAgKTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIoJGNvbG9yLCAkZm9udC1zaXplKTtcbiAgfVxuXG4gIEBlYWNoICRzZWxlY3RvciBpbiAkcGxhY2Vob2xkZXItc2VsZWN0b3JzIHtcbiAgICAmI3skc2VsZWN0b3J9IHtcbiAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyKCRjb2xvciwgJGZvbnQtc2l6ZSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyN7JHNlbGVjdG9yfSB7XG4gICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlci1mb2N1cygpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gcGxhY2Vob2xkZXIoJGNvbG9yLCAkZm9udC1zaXplKSB7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG5AbWl4aW4gcGxhY2Vob2xkZXItZm9jdXMoKSB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRlLi4uKSB7XG4gICRtYXg6IGxlbmd0aCgkYW5pbWF0ZSk7XG4gICRhbmltYXRpb25zOiAnJztcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRtYXgge1xuICAgICRhbmltYXRpb25zOiAjeyRhbmltYXRpb25zICsgbnRoKCRhbmltYXRlLCAkaSl9O1xuXG4gICAgQGlmICRpIDwgJG1heCB7XG4gICAgICAkYW5pbWF0aW9uczogI3skYW5pbWF0aW9ucyArICcsICd9O1xuICAgIH1cbiAgfVxuICAtd2Via2l0LWFuaW1hdGlvbjogJGFuaW1hdGlvbnM7XG4gIC1tb3otYW5pbWF0aW9uOiAgICAkYW5pbWF0aW9ucztcbiAgLW8tYW5pbWF0aW9uOiAgICAgICRhbmltYXRpb25zO1xuICBhbmltYXRpb246ICAgICAgICAgJGFuaW1hdGlvbnM7XG59XG5cbkBtaXhpbiBrZXlmcmFtZXMoJGFuaW1hdGlvbk5hbWUpIHtcbiAgQC13ZWJraXQta2V5ZnJhbWVzICN7JGFuaW1hdGlvbk5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW1vei1rZXlmcmFtZXMgI3skYW5pbWF0aW9uTmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtby1rZXlmcmFtZXMgI3skYW5pbWF0aW9uTmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBrZXlmcmFtZXMgI3skYW5pbWF0aW9uTmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8qKlxuICogVGhpcyBtaXhpbiBnZW5lcmF0ZXMga2V5ZmFtZXMuXG4gKiBCZWNhdXNlIG9mIGFsbCBrZXlmcmFtZXMgY2FuJ3QgYmUgc2NvcGVkLFxuICogd2UgbmVlZCB0byBwdXRzIHVuaXF1ZSBuYW1lIGluIGVhY2ggYnRuLXB1bHNlIGNhbGwuXG4gKi9cbkBtaXhpbiBidG4tcHVsc2UoJG5hbWUsICRjb2xvcikge1xuICAmLmJ0bi1wdWxzZSB7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uKGJ0bi0jeyRuYW1lfS1wdWxzZSAxLjVzIGluZmluaXRlKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGtleWZyYW1lcyhidG4tI3skbmFtZX0tcHVsc2UpIHtcbiAgICAwJSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3BhY2l0eTogbmItdGhlbWUoYnRuLWRpc2FibGVkLW9wYWNpdHkpO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDFyZW0gMCAkY29sb3I7XG4gICAgICBvcGFjaXR5OiAwLjg7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG9wYWNpdHk6IG5iLXRoZW1lKGJ0bi1kaXNhYmxlZC1vcGFjaXR5KTtcbiAgICB9XG4gIH1cbn1cblxuLypcblxuQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIChodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXNjb3BpbmctMS8jaG9zdC1zZWxlY3Rvcilcbjpob3N0IGFuZCA6aG9zdC1jb250ZXh0IGFyZSBwc2V1ZG8tY2xhc3Nlcy4gU28gd2UgYXNzdW1lIHRoZXkgY291bGQgYmUgY29tYmluZWQsXG5saWtlIG90aGVyIHBzZXVkby1jbGFzc2VzLCBldmVuIHNhbWUgb25lcy5cbkZvciBleGFtcGxlOiAnOm50aC1vZi10eXBlKDJuKTpudGgtb2YtdHlwZShldmVuKScuXG5cbklkZWFsIHNvbHV0aW9uIHdvdWxkIGJlIHRvIHByZXBlbmQgYW55IHNlbGVjdG9yIHdpdGggOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pLlxuVGhlbiBuZWJ1bGFyIGNvbXBvbmVudHMgd2lsbCBiZWhhdmUgYXMgYW4gaHRtbCBlbGVtZW50IGFuZCByZXNwb25kIHRvIFtkaXJdIGF0dHJpYnV0ZSBvbiBhbnkgbGV2ZWwsXG5zbyBkaXJlY3Rpb24gY291bGQgYmUgb3ZlcnJpZGRlbiBvbiBhbnkgY29tcG9uZW50IGxldmVsLlxuXG5JbXBsZW1lbnRhdGlvbiBjb2RlOlxuXG5AbWl4aW4gbmItcnRsKCkge1xuICAvLyBhZGQgIyB0byBzY3NzIGludGVycG9sYXRpb24gc3RhdGVtZW50LlxuICAvLyBpdCB3b3JrcyBpbiBjb21tZW50cyBhbmQgd2UgY2FuJ3QgdXNlIGl0IGhlcmVcbiAgQGF0LXJvb3Qge3NlbGVjdG9yLWFwcGVuZCgnOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pJywgJil9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5BbmQgd2hlbiB3ZSBjYWxsIGl0IHNvbWV3aGVyZTpcblxuOmhvc3Qge1xuICAuc29tZS1jbGFzcyB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkge1xuICAgICAgLi4uXG4gICAgfVxuICB9XG59XG46aG9zdC1jb250ZXh0KC4uLikge1xuICAuc29tZS1jbGFzcyB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkge1xuICAgICAgLi4uXG4gICAgfVxuICB9XG59XG5cblJlc3VsdCB3aWxsIGxvb2sgbGlrZTpcblxuOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pOmhvc3QgLnNvbWUtY2xhc3Mge1xuICAuLi5cbn1cbjpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0LWNvbnRleHQoLi4uKSAuc29tZS1jbGFzcyB7XG4gIC4uLlxufVxuXG4qXG4gIFNpZGUgbm90ZTpcbiAgOmhvc3QtY29udGV4dCgpOmhvc3Qgc2VsZWN0b3IgYXJlIHZhbGlkLiBodHRwczovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LXN0eWxlLzIwMTVGZWIvMDMwNS5odG1sXG5cbiAgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pOmhvc3QtY29udGV4dCguLi4pIHNob3VsZCBtYXRjaCBhbnkgcGVybXV0YXRpb24sXG4gIHNvIG9yZGVyIGlzIG5vdCBpbXBvcnRhbnQuXG4qXG5cblxuQ3VycmVudGx5LCB0aGVyZSdyZSB0d28gcHJvYmxlbXMgd2l0aCB0aGlzIGFwcHJvYWNoOlxuXG5GaXJzdCwgaXMgdGhhdCB3ZSBjYW4ndCBjb21iaW5lIDpob3N0LCA6aG9zdC1jb250ZXh0LiBBbmd1bGFyIGJ1Z3MgIzE0MzQ5LCAjMTkxOTkuXG5Gb3IgdGhlIG1vbWVudCBvZiB3cml0aW5nLCB0aGUgb25seSBwb3NzaWJsZSB3YXkgaXM6XG46aG9zdCB7XG4gIDpob3N0LWNvbnRleHQoLi4uKSB7XG4gICAgLi4uXG4gIH1cbn1cbkl0IGRvZXNuJ3Qgd29yayBmb3IgdXMgYmVjYXVzZSBtaXhpbiBjb3VsZCBiZSBjYWxsZWQgc29tZXdoZXJlIGRlZXBlciwgbGlrZTpcbjpob3N0IHtcbiAgcCB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkgeyAuLi4gfVxuICB9XG59XG5XZSBhcmUgbm90IGFibGUgdG8gZ28gdXAgdG8gOmhvc3QgbGV2ZWwgdG8gcGxhY2UgY29udGVudCBwYXNzZWQgdG8gbWl4aW4uXG5cblRoZSBzZWNvbmQgcHJvYmxlbSBpcyB0aGF0IHdlIG9ubHkgY2FuIGJlIHN1cmUgdGhhdCB3ZSBhcHBlbmRpbmcgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHRvIGFub3RoZXJcbjpob3N0Lzpob3N0LWNvbnRleHQgcHNldWRvLWNsYXNzIHdoZW4gY2FsbGVkIGluIHRoZW1lIGZpbGVzICgqLnRoZW1lLnNjc3MpLlxuICAqXG4gICAgU2lkZSBub3RlOlxuICAgIEN1cnJlbnRseSwgbmItaW5zdGFsbC1jb21wb25lbnQgdXNlcyBhbm90aGVyIGFwcHJvYWNoIHdoZXJlIDpob3N0IHByZXBlbmRlZCB3aXRoIHRoZSB0aGVtZSBuYW1lXG4gICAgKGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi81Yjk2MDc4NjI0YjBhNDc2MGYyZGJjZjZmZGYwYmQ2Mjc5MWJlNWJiL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy9zaGFkb3dfY3NzLnRzI0w0NDEpLFxuICAgIGJ1dCBpdCB3YXMgbWFkZSB0byBiZSBhYmxlIHRvIHVzZSBjdXJyZW50IHJlYWxpemF0aW9uIG9mIHJ0bCBhbmQgaXQgY2FuIGJlIHJld3JpdHRlbiBiYWNrIHRvXG4gICAgOmhvc3QtY29udGV4dCgkdGhlbWUpIG9uY2Ugd2Ugd2lsbCBiZSBhYmxlIHRvIHVzZSBtdWx0aXBsZSBzaGFkb3cgc2VsZWN0b3JzLlxuICAqXG5CdXQgd2hlbiBpdCdzIGNhbGxlZCBpbiAqLmNvbXBvbmVudC5zY3NzIHdlIGNhbid0IGJlIHN1cmUsIHRoYXQgc2VsZWN0b3Igc3RhcnRzIHdpdGggOmhvc3QvOmhvc3QtY29udGV4dCxcbmJlY2F1c2UgYW5ndWxhciBhbGxvd3Mgb21pdHRpbmcgcHNldWRvLWNsYXNzZXMgaWYgd2UgZG9uJ3QgbmVlZCB0byBzdHlsZSA6aG9zdCBjb21wb25lbnQgaXRzZWxmLlxuV2UgY2FuIGJyZWFrIHN1Y2ggc2VsZWN0b3JzLCBieSBqdXN0IGFwcGVuZGluZyA6aG9zdC1jb250ZXh0KFtkaXI9cnRsXSkgdG8gdGhlbS5cbiAgKioqXG4gICAgUG9zc2libGUgc29sdXRpb25cbiAgICBjaGVjayBpZiB3ZSBpbiB0aGVtZSBieSBzb21lIHRoZW1lIHZhcmlhYmxlcyBhbmQgaWYgc28gYXBwZW5kLCBvdGhlcndpc2UgbmVzdCBsaWtlXG4gICAgQGF0LXJvb3QgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHtcbiAgICAgIC8vIGFkZCAjIHRvIHNjc3MgaW50ZXJwb2xhdGlvbiBzdGF0ZW1lbnQuXG4gICAgICAvLyBpdCB3b3JrcyBpbiBjb21tZW50cyBhbmQgd2UgY2FuJ3QgdXNlIGl0IGhlcmVcbiAgICAgIHsmfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBXaGF0IGlmIDpob3N0IHNwZWNpZmllZD8gQ2FuIHdlIGFkZCBzcGFjZSBpbiA6aG9zdC1jb250ZXh0KC4uLikgOmhvc3Q/XG4gICAgT3IgbWF5YmUgYWRkIDpob3N0IHNlbGVjdG9yIGFueXdheT8gSWYgbXVsdGlwbGUgOmhvc3Qgc2VsZWN0b3JzIGFyZSBhbGxvd2VkXG4gICoqKlxuXG5cblByb2JsZW1zIHdpdGggdGhlIGN1cnJlbnQgYXBwcm9hY2guXG5cbjEuIERpcmVjdGlvbiBjYW4gYmUgYXBwbGllZCBvbmx5IG9uIGRvY3VtZW50IGxldmVsLCBiZWNhdXNlIG1peGluIHByZXBlbmRzIHRoZW1lIGNsYXNzLFxud2hpY2ggcGxhY2VkIG9uIHRoZSBib2R5LlxuMi4gKi5jb21wb25lbnQuc2NzcyBzdHlsZXMgc2hvdWxkIGJlIGluIDpob3N0IHNlbGVjdG9yLiBPdGhlcndpc2UgYW5ndWxhciB3aWxsIGFkZCBob3N0XG5hdHRyaWJ1dGUgdG8gW2Rpcj1ydGxdIGF0dHJpYnV0ZSBhcyB3ZWxsLlxuXG5cbkdlbmVyYWwgcHJvYmxlbXMuXG5cbkx0ciBpcyBkZWZhdWx0IGRvY3VtZW50IGRpcmVjdGlvbiwgYnV0IGZvciBwcm9wZXIgd29yayBvZiBuYi1sdHIgKG1lYW5zIGx0ciBvbmx5KSxcbltkaXI9bHRyXSBzaG91bGQgYmUgc3BlY2lmaWVkIGF0IGxlYXN0IHNvbWV3aGVyZS4gJzpub3QoW2Rpcj1ydGxdJyBub3QgYXBwbGljYWJsZSBoZXJlLFxuYmVjYXVzZSBpdCdzIHNhdGlzZnkgYW55IHBhcmVudCwgdGhhdCBkb24ndCBoYXZlIFtkaXI9cnRsXSBhdHRyaWJ1dGUuXG5QcmV2aW91cyBhcHByb2FjaCB3YXMgdG8gdXNlIHNpbmdsZSBydGwgbWl4aW4gYW5kIHJlc2V0IGx0ciBwcm9wZXJ0aWVzIHRvIGluaXRpYWwgdmFsdWUuXG5CdXQgc29tZXRpbWVzIGl0J3MgaGFyZCB0byBmaW5kLCB3aGF0IHRoZSBwcmV2aW91cyB2YWx1ZSBzaG91bGQgYmUuIEFuZCBzdWNoIG1peGluIGNhbGwgbG9va3MgdG9vIHZlcmJvc2UuXG4qL1xuXG5AbWl4aW4gX3ByZXBlbmQtd2l0aC1zZWxlY3Rvcigkc2VsZWN0b3IsICRwcm9wOiBudWxsLCAkdmFsdWU6IG51bGwpIHtcbiAgI3skc2VsZWN0b3J9ICYge1xuICAgIEBpZiAkcHJvcCAhPSBudWxsIHtcbiAgICAgICN7JHByb3B9OiAkdmFsdWU7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIG5iLWx0cigkcHJvcDogbnVsbCwgJHZhbHVlOiBudWxsKSB7XG4gIEBpbmNsdWRlIF9wcmVwZW5kLXdpdGgtc2VsZWN0b3IoJ1tkaXI9bHRyXScsICRwcm9wLCAkdmFsdWUpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbmItcnRsKCRwcm9wOiBudWxsLCAkdmFsdWU6IG51bGwpIHtcbiAgQGluY2x1ZGUgX3ByZXBlbmQtd2l0aC1zZWxlY3RvcignW2Rpcj1ydGxdJywgJHByb3AsICR2YWx1ZSkge1xuICAgIEBjb250ZW50O1xuICB9O1xufVxuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuXG4vLy8gU2xpZ2h0bHkgbGlnaHRlbiBhIGNvbG9yXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBjb2xvciB0byB0aW50XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwZXJjZW50YWdlIC0gcGVyY2VudGFnZSBvZiBgJGNvbG9yYCBpbiByZXR1cm5lZCBjb2xvclxuLy8vIEByZXR1cm4ge0NvbG9yfVxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudGFnZSkge1xuICBAcmV0dXJuIG1peCh3aGl0ZSwgJGNvbG9yLCAkcGVyY2VudGFnZSk7XG59XG5cbi8vLyBTbGlnaHRseSBkYXJrZW4gYSBjb2xvclxuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gY29sb3IgdG8gc2hhZGVcbi8vLyBAcGFyYW0ge051bWJlcn0gJHBlcmNlbnRhZ2UgLSBwZXJjZW50YWdlIG9mIGAkY29sb3JgIGluIHJldHVybmVkIGNvbG9yXG4vLy8gQHJldHVybiB7Q29sb3J9XG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudGFnZSkge1xuICBAcmV0dXJuIG1peChibGFjaywgJGNvbG9yLCAkcGVyY2VudGFnZSk7XG59XG5cbkBmdW5jdGlvbiBtYXAtc2V0KCRtYXAsICRrZXksICR2YWx1ZTogbnVsbCkge1xuICAkbmV3OiAoJGtleTogJHZhbHVlKTtcbiAgQHJldHVybiBtYXAtbWVyZ2UoJG1hcCwgJG5ldyk7XG59XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWt2ZW8uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICovXG5cbkBpbXBvcnQgJy4uL2NvcmUvZnVuY3Rpb25zJztcbkBpbXBvcnQgJy4uL2NvcmUvbWl4aW5zJztcblxuJHRoZW1lOiAoXG4gIGZvbnQtbWFpbjogdW5xdW90ZSgnXCJTZWdvZSBVSVwiLCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIHNhbnMtc2VyaWYnKSxcbiAgZm9udC1zZWNvbmRhcnk6IGZvbnQtbWFpbixcblxuICBmb250LXdlaWdodC10aGluOiAyMDAsXG4gIGZvbnQtd2VpZ2h0LWxpZ2h0OiAzMDAsXG4gIGZvbnQtd2VpZ2h0LW5vcm1hbDogNDAwLFxuICBmb250LXdlaWdodC1ib2xkZXI6IDUwMCxcbiAgZm9udC13ZWlnaHQtYm9sZDogNjAwLFxuICBmb250LXdlaWdodC11bHRyYS1ib2xkOiA4MDAsXG5cbiAgLy8gVE9ETzogdXNlIGl0IGFzIGEgZGVmYXVsdCBmb250LXNpemVcbiAgYmFzZS1mb250LXNpemU6IDE2cHgsXG5cbiAgZm9udC1zaXplLXhsZzogMS4yNXJlbSxcbiAgZm9udC1zaXplLWxnOiAxLjEyNXJlbSxcbiAgZm9udC1zaXplOiAxcmVtLFxuICBmb250LXNpemUtc206IDAuODc1cmVtLFxuICBmb250LXNpemUteHM6IDAuNzVyZW0sXG5cbiAgcmFkaXVzOiAwLjM3NXJlbSxcbiAgcGFkZGluZzogMS4yNXJlbSxcbiAgbWFyZ2luOiAxLjVyZW0sXG4gIGxpbmUtaGVpZ2h0OiAxLjI1LFxuXG4gIGNvbG9yLWJnOiAjZmZmZmZmLFxuICBjb2xvci1iZy1hY3RpdmU6ICNlOWVkZjIsXG4gIGNvbG9yLWZnOiAjYTRhYmIzLFxuICBjb2xvci1mZy1oZWFkaW5nOiAjMmEyYTJhLFxuICBjb2xvci1mZy10ZXh0OiAjNGI0YjRiLFxuICBjb2xvci1mZy1oaWdobGlnaHQ6ICM0MGRjN2UsXG5cbiAgc2VwYXJhdG9yOiAjZWJlZWYyLFxuXG4gIGNvbG9yLWdyYXk6IHJnYmEoODEsIDExMywgMTY1LCAwLjE1KSxcbiAgY29sb3ItbmV1dHJhbDogdHJhbnNwYXJlbnQsXG4gIGNvbG9yLXdoaXRlOiAjZmZmZmZmLFxuICBjb2xvci1kaXNhYmxlZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpLFxuXG4gIGNvbG9yLXByaW1hcnk6ICM4YTdmZmYsXG4gIGNvbG9yLXN1Y2Nlc3M6ICM0MGRjN2UsXG4gIGNvbG9yLWluZm86ICM0Y2E2ZmYsXG4gIGNvbG9yLXdhcm5pbmc6ICNmZmExMDAsXG4gIGNvbG9yLWRhbmdlcjogI2ZmNGM2YSxcblxuICAvLyBUT0RPOiBtb3ZlIHRvIGNvbnN0YW50c1xuICBzb2NpYWwtY29sb3ItZmFjZWJvb2s6ICMzYjU5OTgsXG4gIHNvY2lhbC1jb2xvci10d2l0dGVyOiAjNTVhY2VlLFxuICBzb2NpYWwtY29sb3ItZ29vZ2xlOiAjZGQ0YjM5LFxuICBzb2NpYWwtY29sb3ItbGlua2VkaW46ICMwMTc3YjUsXG4gIHNvY2lhbC1jb2xvci1naXRodWI6ICM2YjZiNmIsXG4gIHNvY2lhbC1jb2xvci1zdGFja292ZXJmbG93OiAjMmY5NmU4LFxuICBzb2NpYWwtY29sb3ItZHJpYmJsZTogI2YyNjc5OCxcbiAgc29jaWFsLWNvbG9yLWJlaGFuY2U6ICMwMDkzZmEsXG5cbiAgYm9yZGVyLWNvbG9yOiBjb2xvci1ncmF5LFxuICBzaGFkb3c6IDAgMnB4IDEycHggMCAjZGZlM2ViLFxuXG4gIGxpbmstY29sb3I6ICMzZGNjNmQsXG4gIGxpbmstY29sb3ItaG92ZXI6ICMyZWU1NmIsXG4gIGxpbmstY29sb3ItdmlzaXRlZDogbGluay1jb2xvcixcblxuICBzY3JvbGxiYXItZmc6ICNkYWRhZGEsXG4gIHNjcm9sbGJhci1iZzogI2YyZjJmMixcbiAgc2Nyb2xsYmFyLXdpZHRoOiA1cHgsXG4gIHNjcm9sbGJhci10aHVtYi1yYWRpdXM6IDIuNXB4LFxuXG4gIHJhZGlhbC1ncmFkaWVudDogbm9uZSxcbiAgbGluZWFyLWdyYWRpZW50OiBub25lLFxuXG4gIGNhcmQtZm9udC1zaXplOiBmb250LXNpemUsXG4gIGNhcmQtbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0LFxuICBjYXJkLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ub3JtYWwsXG4gIGNhcmQtZmc6IGNvbG9yLWZnLCAvLyBUT0RPOiBub3QgdXNlZFxuICBjYXJkLWZnLXRleHQ6IGNvbG9yLWZnLXRleHQsXG4gIGNhcmQtZmctaGVhZGluZzogY29sb3ItZmctaGVhZGluZywgLy8gVE9ETzogbm90IHVzZWRcbiAgY2FyZC1iZzogY29sb3ItYmcsXG4gIGNhcmQtaGVpZ2h0LXh4c21hbGw6IDk2cHgsXG4gIGNhcmQtaGVpZ2h0LXhzbWFsbDogMjE2cHgsXG4gIGNhcmQtaGVpZ2h0LXNtYWxsOiAzMzZweCxcbiAgY2FyZC1oZWlnaHQtbWVkaXVtOiA0NTZweCxcbiAgY2FyZC1oZWlnaHQtbGFyZ2U6IDU3NnB4LFxuICBjYXJkLWhlaWdodC14bGFyZ2U6IDY5NnB4LFxuICBjYXJkLWhlaWdodC14eGxhcmdlOiA4MTZweCxcbiAgY2FyZC1zaGFkb3c6IHNoYWRvdyxcbiAgY2FyZC1ib3JkZXItd2lkdGg6IDAsXG4gIGNhcmQtYm9yZGVyLXR5cGU6IHNvbGlkLFxuICBjYXJkLWJvcmRlci1jb2xvcjogY29sb3ItYmcsXG4gIGNhcmQtYm9yZGVyLXJhZGl1czogcmFkaXVzLFxuICBjYXJkLXBhZGRpbmc6IHBhZGRpbmcsXG4gIGNhcmQtbWFyZ2luOiBtYXJnaW4sXG4gIGNhcmQtaGVhZGVyLWZvbnQtZmFtaWx5OiBmb250LXNlY29uZGFyeSxcbiAgY2FyZC1oZWFkZXItZm9udC1zaXplOiBmb250LXNpemUtbGcsXG4gIGNhcmQtaGVhZGVyLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ib2xkLFxuICBjYXJkLXNlcGFyYXRvcjogc2VwYXJhdG9yLFxuICBjYXJkLWhlYWRlci1mZzogY29sb3ItZmcsIC8vIFRPRE86IG5vdCB1c2VkXG4gIGNhcmQtaGVhZGVyLWZnLWhlYWRpbmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIGNhcmQtaGVhZGVyLWFjdGl2ZS1iZzogY29sb3ItZmcsXG4gIGNhcmQtaGVhZGVyLWFjdGl2ZS1mZzogY29sb3ItYmcsXG4gIGNhcmQtaGVhZGVyLWRpc2FibGVkLWJnOiBjb2xvci1kaXNhYmxlZCxcbiAgY2FyZC1oZWFkZXItcHJpbWFyeS1iZzogY29sb3ItcHJpbWFyeSxcbiAgY2FyZC1oZWFkZXItaW5mby1iZzogY29sb3ItaW5mbyxcbiAgY2FyZC1oZWFkZXItc3VjY2Vzcy1iZzogY29sb3Itc3VjY2VzcyxcbiAgY2FyZC1oZWFkZXItd2FybmluZy1iZzogY29sb3Itd2FybmluZyxcbiAgY2FyZC1oZWFkZXItZGFuZ2VyLWJnOiBjb2xvci1kYW5nZXIsXG4gIGNhcmQtaGVhZGVyLWJvcmRlci13aWR0aDogMXB4LFxuICBjYXJkLWhlYWRlci1ib3JkZXItdHlwZTogc29saWQsXG4gIGNhcmQtaGVhZGVyLWJvcmRlci1jb2xvcjogY2FyZC1zZXBhcmF0b3IsXG5cbiAgaGVhZGVyLWZvbnQtZmFtaWx5OiBmb250LXNlY29uZGFyeSxcbiAgaGVhZGVyLWZvbnQtc2l6ZTogZm9udC1zaXplLFxuICBoZWFkZXItbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0LFxuICBoZWFkZXItZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIGhlYWRlci1iZzogY29sb3ItYmcsXG4gIGhlYWRlci1oZWlnaHQ6IDQuNzVyZW0sXG4gIGhlYWRlci1wYWRkaW5nOiAxLjI1cmVtLFxuICBoZWFkZXItc2hhZG93OiBzaGFkb3csXG5cbiAgZm9vdGVyLWhlaWdodDogNC43MjVyZW0sXG4gIGZvb3Rlci1wYWRkaW5nOiAxLjI1cmVtLFxuICBmb290ZXItZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIGZvb3Rlci1mZy1oaWdobGlnaHQ6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIGZvb3Rlci1iZzogY29sb3ItYmcsXG4gIGZvb3Rlci1zZXBhcmF0b3I6IHNlcGFyYXRvcixcbiAgZm9vdGVyLXNoYWRvdzogc2hhZG93LFxuXG4gIGxheW91dC1mb250LWZhbWlseTogZm9udC1tYWluLFxuICBsYXlvdXQtZm9udC1zaXplOiBmb250LXNpemUsXG4gIGxheW91dC1saW5lLWhlaWdodDogbGluZS1oZWlnaHQsXG4gIGxheW91dC1mZzogY29sb3ItZmcsXG4gIGxheW91dC1iZzogI2ViZWZmNSxcbiAgbGF5b3V0LW1pbi1oZWlnaHQ6IDEwMHZoLFxuICBsYXlvdXQtY29udGVudC13aWR0aDogOTAwcHgsXG4gIGxheW91dC13aW5kb3ctbW9kZS1taW4td2lkdGg6IDMwMHB4LFxuICBsYXlvdXQtd2luZG93LW1vZGUtbWF4LXdpZHRoOiAxOTIwcHgsXG4gIGxheW91dC13aW5kb3ctbW9kZS1iZzogbGF5b3V0LWJnLFxuICBsYXlvdXQtd2luZG93LW1vZGUtcGFkZGluZy10b3A6IDQuNzVyZW0sXG4gIGxheW91dC13aW5kb3ctc2hhZG93OiBzaGFkb3csXG4gIGxheW91dC1wYWRkaW5nOiAyLjI1cmVtIDIuMjVyZW0gMC43NXJlbSxcbiAgbGF5b3V0LW1lZGl1bS1wYWRkaW5nOiAxLjVyZW0gMS41cmVtIDAuNXJlbSxcbiAgbGF5b3V0LXNtYWxsLXBhZGRpbmc6IDFyZW0gMXJlbSAwLFxuXG4gIHNpZGViYXItZm9udC1zaXplOiBmb250LXNpemUsXG4gIHNpZGViYXItbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0LFxuICBzaWRlYmFyLWZnOiBjb2xvci1mZy1oZWFkaW5nLFxuICBzaWRlYmFyLWJnOiBjb2xvci1iZyxcbiAgc2lkZWJhci1oZWlnaHQ6IDEwMHZoLFxuICBzaWRlYmFyLXdpZHRoOiAxNnJlbSxcbiAgc2lkZWJhci13aWR0aC1jb21wYWN0OiAzLjVyZW0sXG4gIHNpZGViYXItcGFkZGluZzogcGFkZGluZyxcbiAgc2lkZWJhci1oZWFkZXItaGVpZ2h0OiAzLjVyZW0sXG4gIHNpZGViYXItZm9vdGVyLWhlaWdodDogMy41cmVtLFxuICBzaWRlYmFyLXNoYWRvdzogc2hhZG93LFxuXG4gIG1lbnUtZm9udC1mYW1pbHk6IGZvbnQtc2Vjb25kYXJ5LFxuICBtZW51LWZvbnQtc2l6ZTogZm9udC1zaXplLFxuICBtZW51LWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ib2xkZXIsXG4gIG1lbnUtZmc6IGNvbG9yLWZnLXRleHQsXG4gIG1lbnUtYmc6IGNvbG9yLWJnLFxuICBtZW51LWFjdGl2ZS1mZzogY29sb3ItZmctaGVhZGluZyxcbiAgbWVudS1hY3RpdmUtYmc6IGNvbG9yLWJnLFxuICBtZW51LWFjdGl2ZS1mb250LXdlaWdodDogZm9udC13ZWlnaHQtYm9sZCxcblxuICBtZW51LXN1Ym1lbnUtYmc6IGNvbG9yLWJnLFxuICBtZW51LXN1Ym1lbnUtZmc6IGNvbG9yLWZnLXRleHQsXG4gIG1lbnUtc3VibWVudS1hY3RpdmUtZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIG1lbnUtc3VibWVudS1hY3RpdmUtYmc6IGNvbG9yLWJnLFxuICBtZW51LXN1Ym1lbnUtYWN0aXZlLWJvcmRlci1jb2xvcjogY29sb3ItZmctaGlnaGxpZ2h0LFxuICBtZW51LXN1Ym1lbnUtYWN0aXZlLXNoYWRvdzogbm9uZSxcbiAgbWVudS1zdWJtZW51LWhvdmVyLWZnOiBtZW51LXN1Ym1lbnUtYWN0aXZlLWZnLFxuICBtZW51LXN1Ym1lbnUtaG92ZXItYmc6IG1lbnUtc3VibWVudS1iZyxcbiAgbWVudS1zdWJtZW51LWl0ZW0tYm9yZGVyLXdpZHRoOiAwLjEyNXJlbSxcbiAgbWVudS1zdWJtZW51LWl0ZW0tYm9yZGVyLXJhZGl1czogcmFkaXVzLFxuICBtZW51LXN1Ym1lbnUtaXRlbS1wYWRkaW5nOiAwLjVyZW0gMXJlbSxcbiAgbWVudS1zdWJtZW51LWl0ZW0tY29udGFpbmVyLXBhZGRpbmc6IDAgMS4yNXJlbSxcbiAgbWVudS1zdWJtZW51LXBhZGRpbmc6IDAuNXJlbSxcblxuICBtZW51LWdyb3VwLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ib2xkZXIsXG4gIG1lbnUtZ3JvdXAtZm9udC1zaXplOiAwLjg3NXJlbSxcbiAgbWVudS1ncm91cC1mZzogY29sb3ItZmcsXG4gIG1lbnUtZ3JvdXAtcGFkZGluZzogMXJlbSAxLjI1cmVtLFxuICBtZW51LWl0ZW0tcGFkZGluZzogMC42NzVyZW0gMC43NXJlbSxcbiAgbWVudS1pdGVtLXNlcGFyYXRvcjogc2VwYXJhdG9yLFxuICBtZW51LWljb24tZm9udC1zaXplOiAyLjVyZW0sXG4gIG1lbnUtaWNvbi1tYXJnaW46IDAgMC4yNXJlbSAwLFxuICBtZW51LWljb24tY29sb3I6IGNvbG9yLWZnLFxuICBtZW51LWljb24tYWN0aXZlLWNvbG9yOiBjb2xvci1mZy1oZWFkaW5nLFxuXG4gIHRhYnMtZm9udC1mYW1pbHk6IGZvbnQtc2Vjb25kYXJ5LFxuICB0YWJzLWZvbnQtc2l6ZTogZm9udC1zaXplLWxnLFxuICB0YWJzLWNvbnRlbnQtZm9udC1mYW1pbHk6IGZvbnQtbWFpbixcbiAgdGFicy1jb250ZW50LWZvbnQtc2l6ZTogZm9udC1zaXplLFxuICB0YWJzLWFjdGl2ZS1iZzogdHJhbnNwYXJlbnQsXG4gIHRhYnMtYWN0aXZlLWZvbnQtd2VpZ2h0OiBjYXJkLWhlYWRlci1mb250LXdlaWdodCxcbiAgdGFicy1wYWRkaW5nOiBwYWRkaW5nLFxuICB0YWJzLWNvbnRlbnQtcGFkZGluZzogMCxcbiAgdGFicy1oZWFkZXItYmc6IHRyYW5zcGFyZW50LFxuICB0YWJzLXNlcGFyYXRvcjogc2VwYXJhdG9yLFxuICB0YWJzLWZnOiBjb2xvci1mZyxcbiAgdGFicy1mZy10ZXh0OiBjb2xvci1mZy10ZXh0LFxuICB0YWJzLWZnLWhlYWRpbmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIHRhYnMtYmc6IHRyYW5zcGFyZW50LFxuICB0YWJzLXNlbGVjdGVkOiBjb2xvci1zdWNjZXNzLFxuICB0YWJzLXNlbGVjdGVkLXNlY29uZC1jb2xvcjogY29sb3Itc3VjY2VzcyxcbiAgdGFicy1zZWxlY3RlZC1kZWdyZWVzOiAwLFxuICB0YWJzLWljb24tb25seS1tYXgtd2lkdGg6IDU3NnB4LFxuXG4gIHJvdXRlLXRhYnMtZm9udC1mYW1pbHk6IGZvbnQtc2Vjb25kYXJ5LFxuICByb3V0ZS10YWJzLWZvbnQtc2l6ZTogZm9udC1zaXplLWxnLFxuICByb3V0ZS10YWJzLWFjdGl2ZS1iZzogdHJhbnNwYXJlbnQsXG4gIHJvdXRlLXRhYnMtYWN0aXZlLWZvbnQtd2VpZ2h0OiBjYXJkLWhlYWRlci1mb250LXdlaWdodCxcbiAgcm91dGUtdGFicy1wYWRkaW5nOiBwYWRkaW5nLFxuICByb3V0ZS10YWJzLWhlYWRlci1iZzogdHJhbnNwYXJlbnQsXG4gIHJvdXRlLXRhYnMtc2VwYXJhdG9yOiBzZXBhcmF0b3IsXG4gIHJvdXRlLXRhYnMtZmc6IGNvbG9yLWZnLFxuICByb3V0ZS10YWJzLWZnLWhlYWRpbmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIHJvdXRlLXRhYnMtYmc6IHRyYW5zcGFyZW50LFxuICByb3V0ZS10YWJzLXNlbGVjdGVkOiBjb2xvci1zdWNjZXNzLFxuICByb3V0ZS10YWJzLWljb24tb25seS1tYXgtd2lkdGg6IDU3NnB4LFxuXG4gIHVzZXItZm9udC1zaXplOiBmb250LXNpemUsXG4gIHVzZXItbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0LFxuICB1c2VyLWJnOiBjb2xvci1iZyxcbiAgdXNlci1mZzogY29sb3ItZmcsXG4gIHVzZXItZmctaGlnaGxpZ2h0OiAjYmNjM2NjLFxuICB1c2VyLWZvbnQtZmFtaWx5LXNlY29uZGFyeTogZm9udC1zZWNvbmRhcnksXG4gIHVzZXItc2l6ZS1zbWFsbDogMS41cmVtLFxuICB1c2VyLXNpemUtbWVkaXVtOiAyLjVyZW0sXG4gIHVzZXItc2l6ZS1sYXJnZTogMy4yNXJlbSxcbiAgdXNlci1zaXplLXhsYXJnZTogNHJlbSxcblxuICBwb3BvdmVyLWZnOiBjb2xvci1mZy1oZWFkaW5nLFxuICBwb3BvdmVyLWJnOiBjb2xvci1iZyxcbiAgcG9wb3Zlci1ib3JkZXI6IGNvbG9yLXN1Y2Nlc3MsXG4gIHBvcG92ZXItYm9yZGVyLXJhZGl1czogcmFkaXVzLFxuICBwb3BvdmVyLXNoYWRvdzogbm9uZSxcbiAgcG9wb3Zlci1hcnJvdy1zaXplOiAxMXB4LFxuXG4gIGNvbnRleHQtbWVudS1mZzogY29sb3ItZmctaGVhZGluZyxcbiAgY29udGV4dC1tZW51LWJnOiBjb2xvci1iZyxcbiAgY29udGV4dC1tZW51LWFjdGl2ZS1mZzogY29sb3Itd2hpdGUsXG4gIGNvbnRleHQtbWVudS1hY3RpdmUtYmc6IGNvbG9yLXN1Y2Nlc3MsXG4gIGNvbnRleHQtbWVudS1ib3JkZXI6IGNvbG9yLXN1Y2Nlc3MsXG4gIGNvbnRleHQtbWVudS1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG4gIGNvbnRleHQtbWVudS1zaGFkb3c6IG5vbmUsXG4gIGNvbnRleHQtbWVudS1hcnJvdy1zaXplOiAxMXB4LFxuXG4gIGFjdGlvbnMtZm9udC1zaXplOiBmb250LXNpemUsXG4gIGFjdGlvbnMtZm9udC1mYW1pbHk6IGZvbnQtc2Vjb25kYXJ5LFxuICBhY3Rpb25zLWxpbmUtaGVpZ2h0OiBsaW5lLWhlaWdodCxcbiAgYWN0aW9ucy1mZzogY29sb3ItZmcsXG4gIGFjdGlvbnMtYmc6IGNvbG9yLWJnLFxuICBhY3Rpb25zLXNlcGFyYXRvcjogc2VwYXJhdG9yLFxuICBhY3Rpb25zLXBhZGRpbmc6IHBhZGRpbmcsXG4gIGFjdGlvbnMtc2l6ZS1zbWFsbDogMS41cmVtLFxuICBhY3Rpb25zLXNpemUtbWVkaXVtOiAyLjI1cmVtLFxuICBhY3Rpb25zLXNpemUtbGFyZ2U6IDMuNXJlbSxcblxuICBzZWFyY2gtYnRuLW9wZW4tZmc6IGNvbG9yLWZnLFxuICBzZWFyY2gtYnRuLWNsb3NlLWZnOlx0Y29sb3ItZmcsXG4gIHNlYXJjaC1iZzogbGF5b3V0LWJnLFxuICBzZWFyY2gtYmctc2Vjb25kYXJ5OiBjb2xvci1mZyxcbiAgc2VhcmNoLXRleHQ6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIHNlYXJjaC1pbmZvOiBjb2xvci1mZyxcbiAgc2VhcmNoLWRhc2g6IGNvbG9yLWZnLFxuICBzZWFyY2gtcGxhY2Vob2xkZXI6IGNvbG9yLWZnLFxuXG4gIHNtYXJ0LXRhYmxlLWhlYWRlci1mb250LWZhbWlseTogZm9udC1zZWNvbmRhcnksXG4gIHNtYXJ0LXRhYmxlLWhlYWRlci1mb250LXNpemU6IGZvbnQtc2l6ZSxcbiAgc21hcnQtdGFibGUtaGVhZGVyLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ib2xkLFxuICBzbWFydC10YWJsZS1oZWFkZXItbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0LFxuICBzbWFydC10YWJsZS1oZWFkZXItZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIHNtYXJ0LXRhYmxlLWhlYWRlci1iZzogY29sb3ItYmcsXG5cbiAgc21hcnQtdGFibGUtZm9udC1mYW1pbHk6IGZvbnQtbWFpbixcbiAgc21hcnQtdGFibGUtZm9udC1zaXplOiBmb250LXNpemUsXG4gIHNtYXJ0LXRhYmxlLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ub3JtYWwsXG4gIHNtYXJ0LXRhYmxlLWxpbmUtaGVpZ2h0OiBsaW5lLWhlaWdodCxcbiAgc21hcnQtdGFibGUtZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIHNtYXJ0LXRhYmxlLWJnOiBjb2xvci1iZyxcblxuICBzbWFydC10YWJsZS1iZy1ldmVuOiAjZjVmN2ZjLFxuICBzbWFydC10YWJsZS1mZy1zZWNvbmRhcnk6IGNvbG9yLWZnLFxuICBzbWFydC10YWJsZS1iZy1hY3RpdmU6ICNlNmYzZmYsXG4gIHNtYXJ0LXRhYmxlLXBhZGRpbmc6IDAuODc1cmVtIDEuMjVyZW0sXG4gIHNtYXJ0LXRhYmxlLWZpbHRlci1wYWRkaW5nOiAwLjM3NXJlbSAwLjVyZW0sXG4gIHNtYXJ0LXRhYmxlLXNlcGFyYXRvcjogc2VwYXJhdG9yLFxuICBzbWFydC10YWJsZS1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG5cbiAgc21hcnQtdGFibGUtcGFnaW5nLWJvcmRlci1jb2xvcjogc2VwYXJhdG9yLFxuICBzbWFydC10YWJsZS1wYWdpbmctYm9yZGVyLXdpZHRoOiAxcHgsXG4gIHNtYXJ0LXRhYmxlLXBhZ2luZy1mZy1hY3RpdmU6ICNmZmZmZmYsXG4gIHNtYXJ0LXRhYmxlLXBhZ2luZy1iZy1hY3RpdmU6IGNvbG9yLXN1Y2Nlc3MsXG4gIHNtYXJ0LXRhYmxlLXBhZ2luZy1ob3ZlcjogcmdiYSgwLCAwLCAwLCAwLjA1KSxcblxuICB0b2FzdHItYmc6IGNvbG9yLWJnLFxuICB0b2FzdHItcGFkZGluZzogMS4xMjVyZW0sXG4gIHRvYXN0ci1mZzogY29sb3ItZmctdGV4dCxcbiAgdG9hc3RyLWJvcmRlcjogMC4xMjVyZW0gc29saWQsXG4gIHRvYXN0ci1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG4gIHRvYXN0ci1ib3JkZXItY29sb3I6ICNiY2MzY2MsXG4gIHRvYXN0ci1pY29uLXJhZGl1czogMC4yNXJlbSxcbiAgdG9hc3RyLXNoYWRvdzogc2hhZG93LFxuXG4gIGJ0bi1mZzogY29sb3Itd2hpdGUsXG4gIGJ0bi1mb250LWZhbWlseTogZm9udC1zZWNvbmRhcnksXG4gIGJ0bi1saW5lLWhlaWdodDogbGluZS1oZWlnaHQsXG4gIGJ0bi1kaXNhYmxlZC1vcGFjaXR5OiAwLjMsXG4gIGJ0bi1jdXJzb3I6IGRlZmF1bHQsXG5cbiAgYnRuLXByaW1hcnktYmc6IGNvbG9yLXByaW1hcnksXG4gIGJ0bi1zZWNvbmRhcnktYmc6IHRyYW5zcGFyZW50LFxuICBidG4taW5mby1iZzogY29sb3ItaW5mbyxcbiAgYnRuLXN1Y2Nlc3MtYmc6IGNvbG9yLXN1Y2Nlc3MsXG4gIGJ0bi13YXJuaW5nLWJnOiBjb2xvci13YXJuaW5nLFxuICBidG4tZGFuZ2VyLWJnOiBjb2xvci1kYW5nZXIsXG5cbiAgYnRuLXNlY29uZGFyeS1ib3JkZXI6ICNkYWRmZTYsXG4gIGJ0bi1zZWNvbmRhcnktYm9yZGVyLXdpZHRoOiAycHgsXG5cbiAgYnRuLXBhZGRpbmcteS1sZzogMC44NzVyZW0sXG4gIGJ0bi1wYWRkaW5nLXgtbGc6IDEuNzVyZW0sXG4gIGJ0bi1mb250LXNpemUtbGc6IGZvbnQtc2l6ZS1sZyxcblxuICAvLyBkZWZhdWx0IHNpemVcbiAgYnRuLXBhZGRpbmcteS1tZDogMC43NXJlbSxcbiAgYnRuLXBhZGRpbmcteC1tZDogMS41cmVtLFxuICBidG4tZm9udC1zaXplLW1kOiAxcmVtLFxuXG4gIGJ0bi1wYWRkaW5nLXktc206IDAuNjI1cmVtLFxuICBidG4tcGFkZGluZy14LXNtOiAxLjVyZW0sXG4gIGJ0bi1mb250LXNpemUtc206IDAuODc1cmVtLFxuXG4gIGJ0bi1wYWRkaW5nLXkteHM6IDAuNXJlbSxcbiAgYnRuLXBhZGRpbmcteC14czogMS4yNXJlbSxcbiAgYnRuLWZvbnQtc2l6ZS14czogMC43NXJlbSxcblxuICBidG4tYm9yZGVyLXJhZGl1czogcmFkaXVzLFxuICBidG4tcmVjdGFuZ2xlLWJvcmRlci1yYWRpdXM6IDAuMjVyZW0sXG4gIGJ0bi1zZW1pLXJvdW5kLWJvcmRlci1yYWRpdXM6IDAuNzVyZW0sXG4gIGJ0bi1yb3VuZC1ib3JkZXItcmFkaXVzOiAxLjVyZW0sXG5cbiAgYnRuLWhlcm8tc2hhZG93OiBub25lLFxuICBidG4taGVyby10ZXh0LXNoYWRvdzogbm9uZSxcbiAgYnRuLWhlcm8tYmV2ZWwtc2l6ZTogMCAwIDAgMCxcbiAgYnRuLWhlcm8tZ2xvdy1zaXplOiAwIDAgMCAwLFxuICBidG4taGVyby1wcmltYXJ5LWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby1zdWNjZXNzLWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby13YXJuaW5nLWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby1pbmZvLWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby1kYW5nZXItZ2xvdy1zaXplOiBidG4taGVyby1nbG93LXNpemUsXG4gIGJ0bi1oZXJvLXNlY29uZGFyeS1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLWhlcm8tZGVncmVlOiAyMGRlZyxcbiAgYnRuLWhlcm8tcHJpbWFyeS1kZWdyZWU6IGJ0bi1oZXJvLWRlZ3JlZSxcbiAgYnRuLWhlcm8tc3VjY2Vzcy1kZWdyZWU6IGJ0bi1oZXJvLWRlZ3JlZSxcbiAgYnRuLWhlcm8td2FybmluZy1kZWdyZWU6IDEwZGVnLFxuICBidG4taGVyby1pbmZvLWRlZ3JlZTogLTEwZGVnLFxuICBidG4taGVyby1kYW5nZXItZGVncmVlOiAtMjBkZWcsXG4gIGJ0bi1oZXJvLXNlY29uZGFyeS1kZWdyZWU6IGJ0bi1oZXJvLWRlZ3JlZSxcbiAgYnRuLWhlcm8tYm9yZGVyLXJhZGl1czogcmFkaXVzLFxuXG4gIGJ0bi1vdXRsaW5lLWZnOiBjb2xvci1mZy1oZWFkaW5nLFxuICBidG4tb3V0bGluZS1ob3Zlci1mZzogI2ZmZmZmZixcbiAgYnRuLW91dGxpbmUtZm9jdXMtZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG5cbiAgYnRuLWdyb3VwLWJnOiBsYXlvdXQtYmcsXG4gIGJ0bi1ncm91cC1mZzogY29sb3ItZmctaGVhZGluZyxcbiAgYnRuLWdyb3VwLXNlcGFyYXRvcjogI2RhZGZlNixcblxuICBmb3JtLWNvbnRyb2wtdGV4dC1wcmltYXJ5LWNvbG9yOiBjb2xvci1mZy1oZWFkaW5nLFxuICBmb3JtLWNvbnRyb2wtYmc6IGNvbG9yLWJnLFxuICBmb3JtLWNvbnRyb2wtZm9jdXMtYmc6IGNvbG9yLWJnLFxuXG4gIGZvcm0tY29udHJvbC1ib3JkZXItd2lkdGg6IDJweCxcbiAgZm9ybS1jb250cm9sLWJvcmRlci10eXBlOiBzb2xpZCxcbiAgZm9ybS1jb250cm9sLWJvcmRlci1yYWRpdXM6IHJhZGl1cyxcbiAgZm9ybS1jb250cm9sLXNlbWktcm91bmQtYm9yZGVyLXJhZGl1czogMC43NXJlbSxcbiAgZm9ybS1jb250cm9sLXJvdW5kLWJvcmRlci1yYWRpdXM6IDEuNXJlbSxcbiAgZm9ybS1jb250cm9sLWJvcmRlci1jb2xvcjogI2RhZGZlNixcbiAgZm9ybS1jb250cm9sLXNlbGVjdGVkLWJvcmRlci1jb2xvcjogY29sb3Itc3VjY2VzcyxcblxuICBmb3JtLWNvbnRyb2wtaW5mby1ib3JkZXItY29sb3I6IGNvbG9yLWluZm8sXG4gIGZvcm0tY29udHJvbC1zdWNjZXNzLWJvcmRlci1jb2xvcjogY29sb3Itc3VjY2VzcyxcbiAgZm9ybS1jb250cm9sLWRhbmdlci1ib3JkZXItY29sb3I6IGNvbG9yLWRhbmdlcixcbiAgZm9ybS1jb250cm9sLXdhcm5pbmctYm9yZGVyLWNvbG9yOiBjb2xvci13YXJuaW5nLFxuXG4gIGZvcm0tY29udHJvbC1wbGFjZWhvbGRlci1jb2xvcjogY29sb3ItZmcsXG4gIGZvcm0tY29udHJvbC1wbGFjZWhvbGRlci1mb250LXNpemU6IDFyZW0sXG5cbiAgZm9ybS1jb250cm9sLWZvbnQtc2l6ZTogMXJlbSxcbiAgZm9ybS1jb250cm9sLXBhZGRpbmc6IDAuNzVyZW0gMS4xMjVyZW0sXG4gIGZvcm0tY29udHJvbC1mb250LXNpemUtc206IGZvbnQtc2l6ZS1zbSxcbiAgZm9ybS1jb250cm9sLXBhZGRpbmctc206IDAuMzc1cmVtIDEuMTI1cmVtLFxuICBmb3JtLWNvbnRyb2wtZm9udC1zaXplLWxnOiBmb250LXNpemUtbGcsXG4gIGZvcm0tY29udHJvbC1wYWRkaW5nLWxnOiAxLjEyNXJlbSxcblxuICBmb3JtLWNvbnRyb2wtbGFiZWwtZm9udC13ZWlnaHQ6IDQwMCxcblxuICBmb3JtLWNvbnRyb2wtZmVlZGJhY2stZm9udC1zaXplOiAwLjg3NXJlbSxcbiAgZm9ybS1jb250cm9sLWZlZWRiYWNrLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ub3JtYWwsXG5cbiAgY2hlY2tib3gtYmc6IHRyYW5zcGFyZW50LFxuICBjaGVja2JveC1zaXplOiAxLjI1cmVtLFxuICBjaGVja2JveC1ib3JkZXItc2l6ZTogMnB4LFxuICBjaGVja2JveC1ib3JkZXItY29sb3I6IGZvcm0tY29udHJvbC1ib3JkZXItY29sb3IsXG4gIGNoZWNrYm94LWNoZWNrbWFyazogdHJhbnNwYXJlbnQsXG5cbiAgY2hlY2tib3gtY2hlY2tlZC1iZzogdHJhbnNwYXJlbnQsXG4gIGNoZWNrYm94LWNoZWNrZWQtc2l6ZTogMS4yNXJlbSxcbiAgY2hlY2tib3gtY2hlY2tlZC1ib3JkZXItc2l6ZTogMnB4LFxuICBjaGVja2JveC1jaGVja2VkLWJvcmRlci1jb2xvcjogY29sb3Itc3VjY2VzcyxcbiAgY2hlY2tib3gtY2hlY2tlZC1jaGVja21hcms6IGNvbG9yLWZnLWhlYWRpbmcsXG5cbiAgY2hlY2tib3gtZGlzYWJsZWQtYmc6IHRyYW5zcGFyZW50LFxuICBjaGVja2JveC1kaXNhYmxlZC1zaXplOiAxLjI1cmVtLFxuICBjaGVja2JveC1kaXNhYmxlZC1ib3JkZXItc2l6ZTogMnB4LFxuICBjaGVja2JveC1kaXNhYmxlZC1ib3JkZXItY29sb3I6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIGNoZWNrYm94LWRpc2FibGVkLWNoZWNrbWFyazogY29sb3ItZmctaGVhZGluZyxcblxuICBtb2RhbC1mb250LXNpemU6IGZvbnQtc2l6ZSxcbiAgbW9kYWwtbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0LFxuICBtb2RhbC1mb250LXdlaWdodDogZm9udC13ZWlnaHQtbm9ybWFsLFxuICBtb2RhbC1mZzogY29sb3ItZmctdGV4dCxcbiAgbW9kYWwtZmctaGVhZGluZzogY29sb3ItZmctaGVhZGluZyxcbiAgbW9kYWwtYmc6IGNvbG9yLWJnLFxuICBtb2RhbC1ib3JkZXI6IHRyYW5zcGFyZW50LFxuICBtb2RhbC1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG4gIG1vZGFsLXBhZGRpbmc6IHBhZGRpbmcsXG4gIG1vZGFsLWhlYWRlci1mb250LWZhbWlseTogZm9udC1zZWNvbmRhcnksXG4gIG1vZGFsLWhlYWRlci1mb250LXdlaWdodDogZm9udC13ZWlnaHQtYm9sZGVyLFxuICBtb2RhbC1oZWFkZXItZm9udC1zaXplOiBmb250LXNpemUtbGcsXG4gIG1vZGFsLWJvZHktZm9udC1mYW1pbHk6IGZvbnQtbWFpbixcbiAgbW9kYWwtYm9keS1mb250LXdlaWdodDogZm9udC13ZWlnaHQtbm9ybWFsLFxuICBtb2RhbC1ib2R5LWZvbnQtc2l6ZTogZm9udC1zaXplLFxuICBtb2RhbC1zZXBhcmF0b3I6IHNlcGFyYXRvcixcblxuICBiYWRnZS1mZy10ZXh0OiBjb2xvci13aGl0ZSxcbiAgYmFkZ2UtcHJpbWFyeS1iZy1jb2xvcjogY29sb3ItcHJpbWFyeSxcbiAgYmFkZ2Utc3VjY2Vzcy1iZy1jb2xvcjogY29sb3Itc3VjY2VzcyxcbiAgYmFkZ2UtaW5mby1iZy1jb2xvcjogY29sb3ItaW5mbyxcbiAgYmFkZ2Utd2FybmluZy1iZy1jb2xvcjogY29sb3Itd2FybmluZyxcbiAgYmFkZ2UtZGFuZ2VyLWJnLWNvbG9yOiBjb2xvci1kYW5nZXIsXG5cbiAgcHJvZ3Jlc3MtYmFyLWhlaWdodC14bGc6IDEuNzVyZW0sXG4gIHByb2dyZXNzLWJhci1oZWlnaHQtbGc6IDEuNXJlbSxcbiAgcHJvZ3Jlc3MtYmFyLWhlaWdodDogMS4zNzVyZW0sXG4gIHByb2dyZXNzLWJhci1oZWlnaHQtc206IDEuMjVyZW0sXG4gIHByb2dyZXNzLWJhci1oZWlnaHQteHM6IDFyZW0sXG4gIHByb2dyZXNzLWJhci1hbmltYXRpb24tZHVyYXRpb246IDQwMG1zLFxuICBwcm9ncmVzcy1iYXItZm9udC1zaXplLXhsZzogZm9udC1zaXplLXhsZyxcbiAgcHJvZ3Jlc3MtYmFyLWZvbnQtc2l6ZS1sZzogZm9udC1zaXplLWxnLFxuICBwcm9ncmVzcy1iYXItZm9udC1zaXplOiBmb250LXNpemUsXG4gIHByb2dyZXNzLWJhci1mb250LXNpemUtc206IGZvbnQtc2l6ZS1zbSxcbiAgcHJvZ3Jlc3MtYmFyLWZvbnQtc2l6ZS14czogZm9udC1zaXplLXhzLFxuICBwcm9ncmVzcy1iYXItcmFkaXVzOiByYWRpdXMsXG4gIHByb2dyZXNzLWJhci1iZzogbGF5b3V0LWJnLFxuICBwcm9ncmVzcy1iYXItZm9udC1jb2xvcjogY29sb3Itd2hpdGUsXG4gIHByb2dyZXNzLWJhci1mb250LXdlaWdodDogZm9udC13ZWlnaHQtYm9sZCxcbiAgcHJvZ3Jlc3MtYmFyLWRlZmF1bHQtYmc6IGNvbG9yLWluZm8sXG4gIHByb2dyZXNzLWJhci1wcmltYXJ5LWJnOiBjb2xvci1wcmltYXJ5LFxuICBwcm9ncmVzcy1iYXItc3VjY2Vzcy1iZzogY29sb3Itc3VjY2VzcyxcbiAgcHJvZ3Jlc3MtYmFyLWluZm8tYmc6IGNvbG9yLWluZm8sXG4gIHByb2dyZXNzLWJhci13YXJuaW5nLWJnOiBjb2xvci13YXJuaW5nLFxuICBwcm9ncmVzcy1iYXItZGFuZ2VyLWJnOiBjb2xvci1kYW5nZXIsXG5cbiAgYWxlcnQtZm9udC1zaXplOiBmb250LXNpemUsXG4gIGFsZXJ0LWxpbmUtaGVpZ2h0OiBsaW5lLWhlaWdodCxcbiAgYWxlcnQtZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LW5vcm1hbCxcbiAgYWxlcnQtZmc6IGNvbG9yLXdoaXRlLFxuICBhbGVydC1vdXRsaW5lLWZnOiBjb2xvci1mZyxcbiAgYWxlcnQtYmc6IGNvbG9yLWJnLFxuICBhbGVydC1hY3RpdmUtYmc6IGNvbG9yLWZnLFxuICBhbGVydC1kaXNhYmxlZC1iZzogY29sb3ItZGlzYWJsZWQsXG4gIGFsZXJ0LWRpc2FibGVkLWZnOiBjb2xvci1mZyxcbiAgYWxlcnQtcHJpbWFyeS1iZzogY29sb3ItcHJpbWFyeSxcbiAgYWxlcnQtaW5mby1iZzogY29sb3ItaW5mbyxcbiAgYWxlcnQtc3VjY2Vzcy1iZzogY29sb3Itc3VjY2VzcyxcbiAgYWxlcnQtd2FybmluZy1iZzogY29sb3Itd2FybmluZyxcbiAgYWxlcnQtZGFuZ2VyLWJnOiBjb2xvci1kYW5nZXIsXG4gIGFsZXJ0LWhlaWdodC14eHNtYWxsOiA1MnB4LFxuICBhbGVydC1oZWlnaHQteHNtYWxsOiA3MnB4LFxuICBhbGVydC1oZWlnaHQtc21hbGw6IDkycHgsXG4gIGFsZXJ0LWhlaWdodC1tZWRpdW06IDExMnB4LFxuICBhbGVydC1oZWlnaHQtbGFyZ2U6IDEzMnB4LFxuICBhbGVydC1oZWlnaHQteGxhcmdlOiAxNTJweCxcbiAgYWxlcnQtaGVpZ2h0LXh4bGFyZ2U6IDE3MnB4LFxuICBhbGVydC1zaGFkb3c6IG5vbmUsXG4gIGFsZXJ0LWJvcmRlci1yYWRpdXM6IHJhZGl1cyxcbiAgYWxlcnQtcGFkZGluZzogMXJlbSAxLjEyNXJlbSxcbiAgYWxlcnQtY2xvc2FibGUtcGFkZGluZzogM3JlbSxcbiAgYWxlcnQtYnV0dG9uLXBhZGRpbmc6IDNyZW0sXG4gIGFsZXJ0LW1hcmdpbjogbWFyZ2luLFxuXG4gIGNoYXQtZm9udC1zaXplOiBmb250LXNpemUsXG4gIGNoYXQtZmc6IGNvbG9yLXdoaXRlLFxuICBjaGF0LWJnOiBjb2xvci1iZyxcbiAgY2hhdC1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG4gIGNoYXQtZmctdGV4dDogY29sb3ItZmctdGV4dCxcbiAgY2hhdC1oZWlnaHQteHhzbWFsbDogOTZweCxcbiAgY2hhdC1oZWlnaHQteHNtYWxsOiAyMTZweCxcbiAgY2hhdC1oZWlnaHQtc21hbGw6IDMzNnB4LFxuICBjaGF0LWhlaWdodC1tZWRpdW06IDQ1NnB4LFxuICBjaGF0LWhlaWdodC1sYXJnZTogNTc2cHgsXG4gIGNoYXQtaGVpZ2h0LXhsYXJnZTogNjk2cHgsXG4gIGNoYXQtaGVpZ2h0LXh4bGFyZ2U6IDgxNnB4LFxuICBjaGF0LWJvcmRlcjogYm9yZGVyLFxuICBjaGF0LXBhZGRpbmc6IHBhZGRpbmcsXG4gIGNoYXQtc2hhZG93OiBzaGFkb3csXG4gIGNoYXQtc2VwYXJhdG9yOiBzZXBhcmF0b3IsXG4gIGNoYXQtbWVzc2FnZS1mZzogY29sb3Itd2hpdGUsXG4gIGNoYXQtbWVzc2FnZS1iZzogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjNGNhNmZmLCAjNTliZmZmKSxcbiAgY2hhdC1tZXNzYWdlLXJlcGx5LWJnOiBjb2xvci1iZy1hY3RpdmUsXG4gIGNoYXQtbWVzc2FnZS1yZXBseS1mZzogY29sb3ItZmctdGV4dCxcbiAgY2hhdC1tZXNzYWdlLWF2YXRhci1iZzogY29sb3ItZmcsXG4gIGNoYXQtbWVzc2FnZS1zZW5kZXItZmc6IGNvbG9yLWZnLFxuICBjaGF0LW1lc3NhZ2UtcXVvdGUtZmc6IGNvbG9yLWZnLFxuICBjaGF0LW1lc3NhZ2UtcXVvdGUtYmc6IGNvbG9yLWJnLWFjdGl2ZSxcbiAgY2hhdC1tZXNzYWdlLWZpbGUtZmc6IGNvbG9yLWZnLFxuICBjaGF0LW1lc3NhZ2UtZmlsZS1iZzogdHJhbnNwYXJlbnQsXG4gIGNoYXQtZm9ybS1iZzogdHJhbnNwYXJlbnQsXG4gIGNoYXQtZm9ybS1mZzogY29sb3ItZmctaGVhZGluZyxcbiAgY2hhdC1mb3JtLWJvcmRlcjogc2VwYXJhdG9yLFxuICBjaGF0LWZvcm0tcGxhY2Vob2xkZXItZmc6IGNvbG9yLWZnLFxuICBjaGF0LWZvcm0tYWN0aXZlLWJvcmRlcjogY29sb3ItZmcsXG4gIGNoYXQtYWN0aXZlLWJnOiBjb2xvci1mZyxcbiAgY2hhdC1kaXNhYmxlZC1iZzogY29sb3ItZGlzYWJsZWQsXG4gIGNoYXQtZGlzYWJsZWQtZmc6IGNvbG9yLWZnLFxuICBjaGF0LXByaW1hcnktYmc6IGNvbG9yLXByaW1hcnksXG4gIGNoYXQtaW5mby1iZzogY29sb3ItaW5mbyxcbiAgY2hhdC1zdWNjZXNzLWJnOiBjb2xvci1zdWNjZXNzLFxuICBjaGF0LXdhcm5pbmctYmc6IGNvbG9yLXdhcm5pbmcsXG4gIGNoYXQtZGFuZ2VyLWJnOiBjb2xvci1kYW5nZXIsXG5cbiAgc3Bpbm5lci1iZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgzKSxcbiAgc3Bpbm5lci1jaXJjbGUtYmc6IGNvbG9yLWJnLWFjdGl2ZSxcbiAgc3Bpbm5lci1mZzogY29sb3ItZmctdGV4dCxcbiAgc3Bpbm5lci1hY3RpdmUtYmc6IGNvbG9yLWZnLFxuICBzcGlubmVyLWRpc2FibGVkLWJnOiBjb2xvci1kaXNhYmxlZCxcbiAgc3Bpbm5lci1kaXNhYmxlZC1mZzogY29sb3ItZmcsXG4gIHNwaW5uZXItcHJpbWFyeS1iZzogY29sb3ItcHJpbWFyeSxcbiAgc3Bpbm5lci1pbmZvLWJnOiBjb2xvci1pbmZvLFxuICBzcGlubmVyLXN1Y2Nlc3MtYmc6IGNvbG9yLXN1Y2Nlc3MsXG4gIHNwaW5uZXItd2FybmluZy1iZzogY29sb3Itd2FybmluZyxcbiAgc3Bpbm5lci1kYW5nZXItYmc6IGNvbG9yLWRhbmdlcixcbiAgc3Bpbm5lci14eHNtYWxsOiAxLjI1cmVtLFxuICBzcGlubmVyLXhzbWFsbDogMS41cmVtLFxuICBzcGlubmVyLXNtYWxsOiAxLjc1cmVtLFxuICBzcGlubmVyLW1lZGl1bTogMnJlbSxcbiAgc3Bpbm5lci1sYXJnZTogMi4yNXJlbSxcbiAgc3Bpbm5lci14bGFyZ2U6IDIuNXJlbSxcbiAgc3Bpbm5lci14eGxhcmdlOiAzcmVtLFxuXG4gIHN0ZXBwZXItaW5kZXgtc2l6ZTogMnJlbSxcbiAgc3RlcHBlci1sYWJlbC1mb250LXNpemU6IGZvbnQtc2l6ZS1zbSxcbiAgc3RlcHBlci1sYWJlbC1mb250LXdlaWdodDogZm9udC13ZWlnaHQtYm9sZGVyLFxuICBzdGVwcGVyLWFjY2VudC1jb2xvcjogY29sb3ItcHJpbWFyeSxcbiAgc3RlcHBlci1jb21wbGV0ZWQtZmc6IGNvbG9yLXdoaXRlLFxuICBzdGVwcGVyLWZnOiBjb2xvci1mZyxcbiAgc3RlcHBlci1jb21wbGV0ZWQtaWNvbi1zaXplOiAxLjVyZW0sXG4gIHN0ZXBwZXItY29tcGxldGVkLWljb24td2VpZ2h0OiBmb250LXdlaWdodC11bHRyYS1ib2xkLFxuICBzdGVwcGVyLXN0ZXAtcGFkZGluZzogcGFkZGluZyxcblxuICBhY2NvcmRpb24tcGFkZGluZzogcGFkZGluZyxcbiAgYWNjb3JkaW9uLXNlcGFyYXRvcjogc2VwYXJhdG9yLFxuICBhY2NvcmRpb24taGVhZGVyLWZvbnQtZmFtaWx5OiBmb250LXNlY29uZGFyeSxcbiAgYWNjb3JkaW9uLWhlYWRlci1mb250LXNpemU6IGZvbnQtc2l6ZS1sZyxcbiAgYWNjb3JkaW9uLWhlYWRlci1mb250LXdlaWdodDogZm9udC13ZWlnaHQtbm9ybWFsLFxuICBhY2NvcmRpb24taGVhZGVyLWZnLWhlYWRpbmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIGFjY29yZGlvbi1oZWFkZXItZGlzYWJsZWQtZmc6IGNvbG9yLWZnLFxuICBhY2NvcmRpb24taGVhZGVyLWJvcmRlci13aWR0aDogMXB4LFxuICBhY2NvcmRpb24taGVhZGVyLWJvcmRlci10eXBlOiBzb2xpZCxcbiAgYWNjb3JkaW9uLWhlYWRlci1ib3JkZXItY29sb3I6IGFjY29yZGlvbi1zZXBhcmF0b3IsXG4gIGFjY29yZGlvbi1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG4gIGFjY29yZGlvbi1pdGVtLWJnOiBjb2xvci1iZyxcbiAgYWNjb3JkaW9uLWl0ZW0tZm9udC1zaXplOiBmb250LXNpemUsXG4gIGFjY29yZGlvbi1pdGVtLWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ub3JtYWwsXG4gIGFjY29yZGlvbi1pdGVtLWZvbnQtZmFtaWx5OiBmb250LW1haW4sXG4gIGFjY29yZGlvbi1pdGVtLWZnLXRleHQ6IGNvbG9yLWZnLXRleHQsXG4gIGFjY29yZGlvbi1pdGVtLXNoYWRvdzogc2hhZG93LFxuXG4gIGxpc3QtaXRlbS1ib3JkZXItY29sb3I6IHRhYnMtc2VwYXJhdG9yLFxuICBsaXN0LWl0ZW0tcGFkZGluZzogMXJlbSxcblxuICBjYWxlbmRhci13aWR0aDogMjEuODc1cmVtLFxuICBjYWxlbmRhci1ib2R5LWhlaWdodDogMjUuNjI1cmVtLFxuICBjYWxlbmRhci1oZWFkZXItdGl0bGUtZm9udC1zaXplOiBmb250LXNpemUteGxnLFxuICBjYWxlbmRhci1oZWFkZXItdGl0bGUtZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LWJvbGQsXG4gIGNhbGVuZGFyLWhlYWRlci1zdWItdGl0bGUtZm9udC1zaXplOiBmb250LXNpemUsXG4gIGNhbGVuZGFyLWhlYWRlci1zdWItdGl0bGUtZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LXRoaW4sXG4gIGNhbGVuZGFyLW5hdmlnYXRpb24tYnV0dG9uLXdpZHRoOiAxMHJlbSxcbiAgY2FsZW5kYXItc2VsZWN0ZWQtaXRlbS1iZzogY29sb3Itc3VjY2VzcyxcbiAgY2FsZW5kYXItaG92ZXItaXRlbS1iZzogY2FsZW5kYXItc2VsZWN0ZWQtaXRlbS1iZyxcbiAgY2FsZW5kYXItdG9kYXktaXRlbS1iZzogY29sb3ItYmctYWN0aXZlLFxuICBjYWxlbmRhci1hY3RpdmUtaXRlbS1iZzogY29sb3Itc3VjY2VzcyxcbiAgY2FsZW5kYXItZmc6IGNvbG9yLWZnLXRleHQsXG4gIGNhbGVuZGFyLXNlbGVjdGVkLWZnOiBjb2xvci13aGl0ZSxcbiAgY2FsZW5kYXItdG9kYXktZmc6IGNhbGVuZGFyLWZnLFxuICBjYWxlbmRhci1kYXktY2VsbC13aWR0aDogMi42MjVyZW0sXG4gIGNhbGVuZGFyLWRheS1jZWxsLWhlaWdodDogMi42MjVyZW0sXG4gIGNhbGVuZGFyLW1vbnRoLWNlbGwtd2lkdGg6IDQuMjVyZW0sXG4gIGNhbGVuZGFyLW1vbnRoLWNlbGwtaGVpZ2h0OiAyLjM3NXJlbSxcbiAgY2FsZW5kYXIteWVhci1jZWxsLXdpZHRoOiBjYWxlbmRhci1tb250aC1jZWxsLXdpZHRoLFxuICBjYWxlbmRhci15ZWFyLWNlbGwtaGVpZ2h0OiBjYWxlbmRhci1tb250aC1jZWxsLWhlaWdodCxcbiAgY2FsZW5kYXItaW5hY3RpdmUtb3BhY2l0eTogMC41LFxuICBjYWxlbmRhci1kaXNhYmxlZC1vcGFjaXR5OiAwLjMsXG4gIGNhbGVuZGFyLWJvcmRlci1yYWRpdXM6IHJhZGl1cyxcbiAgY2FsZW5kYXItd2Vla2RheS13aWR0aDogY2FsZW5kYXItZGF5LWNlbGwtd2lkdGgsXG4gIGNhbGVuZGFyLXdlZWtkYXktaGVpZ2h0OiAxLjc1cmVtLFxuICBjYWxlbmRhci13ZWVrZGF5LWZvbnQtc2l6ZTogZm9udC1zaXplLXhzLFxuICBjYWxlbmRhci13ZWVrZGF5LWZvbnQtd2VpZ2h0OiBmb250LXdlaWdodC1ub3JtYWwsXG4gIGNhbGVuZGFyLXdlZWtkYXktZmc6IGNvbG9yLWZnLFxuICBjYWxlbmRhci13ZWVrZGF5LWhvbGlkYXktZmc6IGNvbG9yLWRhbmdlcixcbiAgY2FsZW5kYXItcmFuZ2UtYmctaW4tcmFuZ2U6ICNlYmZiZjIsXG5cbiAgY2FsZW5kYXItbGFyZ2Utd2lkdGg6IDI0LjM3NXJlbSxcbiAgY2FsZW5kYXItbGFyZ2UtYm9keS1oZWlnaHQ6IDI3Ljc1cmVtLFxuICBjYWxlbmRhci1kYXktY2VsbC1sYXJnZS13aWR0aDogM3JlbSxcbiAgY2FsZW5kYXItZGF5LWNlbGwtbGFyZ2UtaGVpZ2h0OiAzcmVtLFxuICBjYWxlbmRhci1tb250aC1jZWxsLWxhcmdlLXdpZHRoOiA0LjI1cmVtLFxuICBjYWxlbmRhci1tb250aC1jZWxsLWxhcmdlLWhlaWdodDogMi4zNzVyZW0sXG4gIGNhbGVuZGFyLXllYXItY2VsbC1sYXJnZS13aWR0aDogY2FsZW5kYXItbW9udGgtY2VsbC13aWR0aCxcbiAgY2FsZW5kYXIteWVhci1jZWxsLWxhcmdlLWhlaWdodDogY2FsZW5kYXItbW9udGgtY2VsbC1oZWlnaHQsXG5cbiAgb3ZlcmxheS1iYWNrZHJvcC1iZzogcmdiYSgwLCAwLCAwLCAwLjI4OCksXG5cbiAgdG9vbHRpcC1iZzogY29sb3ItZmctdGV4dCxcbiAgdG9vbHRpcC1wcmltYXJ5LWJnOiBjb2xvci1wcmltYXJ5LFxuICB0b29sdGlwLWluZm8tYmc6IGNvbG9yLWluZm8sXG4gIHRvb2x0aXAtc3VjY2Vzcy1iZzogY29sb3Itc3VjY2VzcyxcbiAgdG9vbHRpcC13YXJuaW5nLWJnOiBjb2xvci13YXJuaW5nLFxuICB0b29sdGlwLWRhbmdlci1iZzogY29sb3ItZGFuZ2VyLFxuICB0b29sdGlwLWZnOiBjb2xvci1iZy1hY3RpdmUsXG4gIHRvb2x0aXAtc3RhdHVzLWZnOiBjb2xvci1iZy1hY3RpdmUsXG4gIHRvb2x0aXAtc2hhZG93OiBzaGFkb3csXG4gIHRvb2x0aXAtZm9udC1zaXplOiBmb250LXNpemUsXG5cbiAgc2VsZWN0LWJvcmRlci13aWR0aDogMnB4LFxuICBzZWxlY3QtbWF4LWhlaWdodDogMjByZW0sXG4gIHNlbGVjdC1iZzogY29sb3ItYmcsXG5cbiAgc2VsZWN0LWNoZWNrYm94LWNvbG9yOiBjaGVja2JveC1ib3JkZXItY29sb3IsXG4gIHNlbGVjdC1jaGVja21hcmstY29sb3I6IGNoZWNrYm94LWJvcmRlci1jb2xvcixcblxuICBzZWxlY3Qtb3B0aW9uLWRpc2FibGVkLWJnOiAjZjJmNGY3LFxuICBzZWxlY3Qtb3B0aW9uLWRpc2FibGVkLW9wYWNpdHk6IDAuMyxcbiAgc2VsZWN0LW9wdGlvbi1wYWRkaW5nOiAwLjc1cmVtIDEuNXJlbSxcblxuICBkYXRlcGlja2VyLWZnOiBjb2xvci1mZy1oZWFkaW5nLFxuICBkYXRlcGlja2VyLWJnOiBjb2xvci1iZyxcbiAgZGF0ZXBpY2tlci1ib3JkZXI6IGNvbG9yLXN1Y2Nlc3MsXG4gIGRhdGVwaWNrZXItYm9yZGVyLXJhZGl1czogcmFkaXVzLFxuICBkYXRlcGlja2VyLXNoYWRvdzogbm9uZSxcbiAgZGF0ZXBpY2tlci1hcnJvdy1zaXplOiAxMXB4LFxuXG4gIHJhZGlvLWJnOiB0cmFuc3BhcmVudCxcbiAgcmFkaW8tZmc6IGNvbG9yLWZnLXRleHQsXG4gIHJhZGlvLXNpemU6IDEuMjVyZW0sXG4gIHJhZGlvLWJvcmRlci1zaXplOiAycHgsXG4gIHJhZGlvLWJvcmRlci1jb2xvcjogZm9ybS1jb250cm9sLWJvcmRlci1jb2xvcixcbiAgcmFkaW8tY2hlY2ttYXJrOiB0cmFuc3BhcmVudCxcbiAgcmFkaW8tY2hlY2tlZC1iZzogdHJhbnNwYXJlbnQsXG4gIHJhZGlvLWNoZWNrZWQtc2l6ZTogMS4yNXJlbSxcbiAgcmFkaW8tY2hlY2tlZC1ib3JkZXItc2l6ZTogMnB4LFxuICByYWRpby1jaGVja2VkLWJvcmRlci1jb2xvcjogY29sb3Itc3VjY2VzcyxcbiAgcmFkaW8tY2hlY2tlZC1jaGVja21hcms6IGNvbG9yLXN1Y2Nlc3MsXG4gIHJhZGlvLWRpc2FibGVkLWJnOiB0cmFuc3BhcmVudCxcbiAgcmFkaW8tZGlzYWJsZWQtc2l6ZTogMS4yNXJlbSxcbiAgcmFkaW8tZGlzYWJsZWQtYm9yZGVyLXNpemU6IDJweCxcbiAgcmFkaW8tZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiByYWRpby1ib3JkZXItY29sb3IsXG4gIHJhZGlvLWRpc2FibGVkLWNoZWNrbWFyazogcmFkaW8tY2hlY2ttYXJrLFxuKTtcblxuLy8gcmVnaXN0ZXIgdGhlIHRoZW1lXG4kbmItdGhlbWVzOiBuYi1yZWdpc3Rlci10aGVtZSgkdGhlbWUsIGRlZmF1bHQpO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuXG5AaW1wb3J0ICcuLi9jb3JlL2Z1bmN0aW9ucyc7XG5AaW1wb3J0ICcuLi9jb3JlL21peGlucyc7XG5AaW1wb3J0ICdkZWZhdWx0JztcblxuLy8gZGVmYXVsdCB0aGUgYmFzZSB0aGVtZVxuJHRoZW1lOiAoXG4gIHJhZGl1czogMC41cmVtLFxuXG4gIGNvbG9yLWJnOiAjM2QzNzgwLFxuICBjb2xvci1iZy1hY3RpdmU6ICM0OTQyOTksXG4gIGNvbG9yLWZnOiAjYTFhMWU1LFxuICBjb2xvci1mZy1oZWFkaW5nOiAjZmZmZmZmLFxuICBjb2xvci1mZy10ZXh0OiAjZDFkMWZmLFxuICBjb2xvci1mZy1oaWdobGlnaHQ6ICMwMGY5YTYsXG5cbiAgY29sb3ItZ3JheTogcmdiYSg4MSwgMTEzLCAxNjUsIDAuMTUpLFxuICBjb2xvci1uZXV0cmFsOiB0cmFuc3BhcmVudCxcbiAgY29sb3Itd2hpdGU6ICNmZmZmZmYsXG4gIGNvbG9yLWRpc2FibGVkOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCksXG5cbiAgY29sb3ItcHJpbWFyeTogIzc2NTlmZixcbiAgY29sb3Itc3VjY2VzczogIzAwZDk3NyxcbiAgY29sb3ItaW5mbzogIzAwODhmZixcbiAgY29sb3Itd2FybmluZzogI2ZmYTEwMCxcbiAgY29sb3ItZGFuZ2VyOiAjZmYzODZhLFxuXG4gIGxpbmstY29sb3I6ICMwMGY5YTYsXG4gIGxpbmstY29sb3ItaG92ZXI6ICMxNGZmYmUsXG5cbiAgc2VwYXJhdG9yOiAjMzQyZTczLFxuICBzaGFkb3c6IDAgOHB4IDIwcHggMCByZ2JhKDQwLCAzNywgODksIDAuNiksXG5cbiAgY2FyZC1oZWFkZXItZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LWJvbGRlcixcblxuICBsYXlvdXQtYmc6ICMyZjI5NmIsXG5cbiAgc2Nyb2xsYmFyLWZnOiAjNTU0ZGIzLFxuICBzY3JvbGxiYXItYmc6ICMzMzJlNzMsXG5cbiAgcmFkaWFsLWdyYWRpZW50OiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSA1MCUsICM0MjNmOGMsICMzMDJjNmUpLFxuICBsaW5lYXItZ3JhZGllbnQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzE3MTc0OSwgIzQxMzc4OSksXG5cbiAgc2lkZWJhci1mZzogY29sb3Itc2Vjb25kYXJ5LFxuICBzaWRlYmFyLWJnOiBjb2xvci1iZyxcblxuICBoZWFkZXItZmc6IGNvbG9yLXdoaXRlLFxuICBoZWFkZXItYmc6IGNvbG9yLWJnLFxuXG4gIGZvb3Rlci1mZzogY29sb3ItZmcsXG4gIGZvb3Rlci1iZzogY29sb3ItYmcsXG5cbiAgYWN0aW9ucy1mZzogY29sb3ItZmcsXG4gIGFjdGlvbnMtYmc6IGNvbG9yLWJnLFxuXG4gIHVzZXItZmc6IGNvbG9yLWJnLFxuICB1c2VyLWJnOiBjb2xvci1mZyxcbiAgdXNlci1mZy1oaWdobGlnaHQ6IGNvbG9yLWZnLWhpZ2hsaWdodCxcblxuICBwb3BvdmVyLWJvcmRlcjogY29sb3ItcHJpbWFyeSxcbiAgcG9wb3Zlci1zaGFkb3c6IHNoYWRvdyxcblxuICBjb250ZXh0LW1lbnUtYWN0aXZlLWJnOiBjb2xvci1wcmltYXJ5LFxuICBjb250ZXh0LW1lbnUtYm9yZGVyOiBjb2xvci1wcmltYXJ5LFxuXG4gIGZvb3Rlci1oZWlnaHQ6IGhlYWRlci1oZWlnaHQsXG5cbiAgc2lkZWJhci13aWR0aDogMTYuMjVyZW0sXG4gIHNpZGViYXItd2lkdGgtY29tcGFjdDogMy40NXJlbSxcblxuICBtZW51LWZnOiBjb2xvci1mZyxcbiAgbWVudS1iZzogY29sb3ItYmcsXG4gIG1lbnUtYWN0aXZlLWZnOiBjb2xvci13aGl0ZSxcbiAgbWVudS1ncm91cC1mZzogY29sb3Itd2hpdGUsXG4gIG1lbnUtZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LW5vcm1hbCxcbiAgbWVudS1hY3RpdmUtZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LWJvbGRlcixcbiAgbWVudS1zdWJtZW51LWJnOiBsYXlvdXQtYmcsXG4gIG1lbnUtc3VibWVudS1mZzogY29sb3ItZmcsXG4gIG1lbnUtc3VibWVudS1hY3RpdmUtZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIG1lbnUtc3VibWVudS1hY3RpdmUtYmc6IHJnYmEoMCwgMjU1LCAxNzAsIDAuMjUpLFxuICBtZW51LXN1Ym1lbnUtYWN0aXZlLWJvcmRlci1jb2xvcjogY29sb3ItZmctaGlnaGxpZ2h0LFxuICBtZW51LXN1Ym1lbnUtYWN0aXZlLXNoYWRvdzogMCAycHggMTJweCAwIHJnYmEoMCwgMjU1LCAxNzAsIDAuMjUpLFxuICBtZW51LWl0ZW0tcGFkZGluZzogMC4yNXJlbSAwLjc1cmVtLFxuICBtZW51LWl0ZW0tc2VwYXJhdG9yOiB0cmFuc3BhcmVudCxcblxuICBidG4taGVyby1zaGFkb3c6IDAgNHB4IDEwcHggMCByZ2JhKDMzLCA3LCA3NywgMC41KSxcbiAgYnRuLWhlcm8tdGV4dC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMyksXG4gIGJ0bi1oZXJvLWJldmVsLXNpemU6IDAgM3B4IDAgMCxcbiAgYnRuLWhlcm8tZ2xvdy1zaXplOiAwIDJweCA4cHggMCxcbiAgYnRuLWhlcm8tcHJpbWFyeS1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLWhlcm8tc3VjY2Vzcy1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLWhlcm8td2FybmluZy1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLWhlcm8taW5mby1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLWhlcm8tZGFuZ2VyLWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby1zZWNvbmRhcnktZ2xvdy1zaXplOiBidG4taGVyby1nbG93LXNpemUsXG4gIGJ0bi1zZWNvbmRhcnktYm9yZGVyOiBjb2xvci1wcmltYXJ5LFxuICBidG4tb3V0bGluZS1mZzogY29sb3ItZmctaGVhZGluZyxcbiAgYnRuLW91dGxpbmUtaG92ZXItZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIGJ0bi1vdXRsaW5lLWZvY3VzLWZnOiBjb2xvci1mZy1oZWFkaW5nLFxuICBidG4tZ3JvdXAtYmc6ICMzNzMyNzMsXG4gIGJ0bi1ncm91cC1zZXBhcmF0b3I6ICMzMTJjNjYsXG5cbiAgZm9ybS1jb250cm9sLWJnOiAjMzczMTdhLFxuICBmb3JtLWNvbnRyb2wtZm9jdXMtYmc6IHNlcGFyYXRvcixcbiAgZm9ybS1jb250cm9sLWJvcmRlci1jb2xvcjogc2VwYXJhdG9yLFxuICBmb3JtLWNvbnRyb2wtc2VsZWN0ZWQtYm9yZGVyLWNvbG9yOiBjb2xvci1wcmltYXJ5LFxuXG4gIGNoZWNrYm94LWJnOiB0cmFuc3BhcmVudCxcbiAgY2hlY2tib3gtc2l6ZTogMS4yNXJlbSxcbiAgY2hlY2tib3gtYm9yZGVyLXNpemU6IDJweCxcbiAgY2hlY2tib3gtYm9yZGVyLWNvbG9yOiBjb2xvci1mZyxcbiAgY2hlY2tib3gtY2hlY2ttYXJrOiB0cmFuc3BhcmVudCxcblxuICBjaGVja2JveC1jaGVja2VkLWJnOiB0cmFuc3BhcmVudCxcbiAgY2hlY2tib3gtY2hlY2tlZC1zaXplOiAxLjI1cmVtLFxuICBjaGVja2JveC1jaGVja2VkLWJvcmRlci1zaXplOiAycHgsXG4gIGNoZWNrYm94LWNoZWNrZWQtYm9yZGVyLWNvbG9yOiBjb2xvci1zdWNjZXNzLFxuICBjaGVja2JveC1jaGVja2VkLWNoZWNrbWFyazogY29sb3ItZmctaGVhZGluZyxcblxuICBjaGVja2JveC1kaXNhYmxlZC1iZzogdHJhbnNwYXJlbnQsXG4gIGNoZWNrYm94LWRpc2FibGVkLXNpemU6IDEuMjVyZW0sXG4gIGNoZWNrYm94LWRpc2FibGVkLWJvcmRlci1zaXplOiAycHgsXG4gIGNoZWNrYm94LWRpc2FibGVkLWJvcmRlci1jb2xvcjogY29sb3ItZmctaGVhZGluZyxcbiAgY2hlY2tib3gtZGlzYWJsZWQtY2hlY2ttYXJrOiBjb2xvci1mZy1oZWFkaW5nLFxuXG4gIHNlYXJjaC1iZzogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMTcxNzQ5LCAjNDEzNzg5KSxcblxuICBzbWFydC10YWJsZS1oZWFkZXItZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LW5vcm1hbCxcbiAgc21hcnQtdGFibGUtaGVhZGVyLWJnOiBjb2xvci1iZy1hY3RpdmUsXG4gIHNtYXJ0LXRhYmxlLWJnLWV2ZW46ICMzYTM0N2EsXG4gIHNtYXJ0LXRhYmxlLWJnLWFjdGl2ZTogY29sb3ItYmctYWN0aXZlLFxuXG4gIHNtYXJ0LXRhYmxlLXBhZ2luZy1ib3JkZXItY29sb3I6IGNvbG9yLXByaW1hcnksXG4gIHNtYXJ0LXRhYmxlLXBhZ2luZy1ib3JkZXItd2lkdGg6IDJweCxcbiAgc21hcnQtdGFibGUtcGFnaW5nLWZnLWFjdGl2ZTogY29sb3ItZmctaGVhZGluZyxcbiAgc21hcnQtdGFibGUtcGFnaW5nLWJnLWFjdGl2ZTogY29sb3ItcHJpbWFyeSxcbiAgc21hcnQtdGFibGUtcGFnaW5nLWhvdmVyOiByZ2JhKDAsIDAsIDAsIDAuMiksXG5cbiAgYmFkZ2UtZmctdGV4dDogY29sb3Itd2hpdGUsXG4gIGJhZGdlLXByaW1hcnktYmctY29sb3I6IGNvbG9yLXByaW1hcnksXG4gIGJhZGdlLXN1Y2Nlc3MtYmctY29sb3I6IGNvbG9yLXN1Y2Nlc3MsXG4gIGJhZGdlLWluZm8tYmctY29sb3I6IGNvbG9yLWluZm8sXG4gIGJhZGdlLXdhcm5pbmctYmctY29sb3I6IGNvbG9yLXdhcm5pbmcsXG4gIGJhZGdlLWRhbmdlci1iZy1jb2xvcjogY29sb3ItZGFuZ2VyLFxuXG4gIHNwaW5uZXItYmc6IHJnYmEoNjEsIDU1LCAxMjgsIDAuOSksXG4gIHN0ZXBwZXItYWNjZW50LWNvbG9yOiBjb2xvci1zdWNjZXNzLFxuXG4gIHRhYnMtc2VsZWN0ZWQtc2Vjb25kLWNvbG9yOiBjb2xvci1zdWNjZXNzLFxuICB0YWJzLXNlbGVjdGVkLWRlZ3JlZXM6IDIwZGVnLFxuXG4gIGNhbGVuZGFyLWFjdGl2ZS1pdGVtLWJnOiBjb2xvci1wcmltYXJ5LFxuICBjYWxlbmRhci1zZWxlY3RlZC1pdGVtLWJnOiBjb2xvci1wcmltYXJ5LFxuICBjYWxlbmRhci1yYW5nZS1iZy1pbi1yYW5nZTogIzRlNDA5NSxcbiAgY2FsZW5kYXItdG9kYXktaXRlbS1iZzogIzM1MmY2ZSxcblxuICBzZWxlY3Qtb3B0aW9uLWRpc2FibGVkLWJnOiAjMzEyZTc1LFxuXG4gIHRvYXN0ci1jb2xvci1mZzogY29sb3Itd2hpdGUsXG4gIHRvYXN0ci1wYWRkaW5nOiAxLjI1cmVtLFxuICB0b2FzdHItYm9yZGVyOiAwLFxuICB0b2FzdHItZGVmYXVsdC1iYWNrZ3JvdW5kOiAjYmNjM2NjLFxuXG4gIHRvb2x0aXAtZmc6IGNvbG9yLWJnLFxuICB0b29sdGlwLXN0YXR1cy1mZzogY29sb3Itd2hpdGUsXG5cbiAgZGF0ZXBpY2tlci1ib3JkZXI6IGNvbG9yLXByaW1hcnksXG4gIGRhdGVwaWNrZXItc2hhZG93OiBzaGFkb3csXG5cbiAgcmFkaW8tY2hlY2tlZC1ib3JkZXItY29sb3I6IGNvbG9yLXByaW1hcnksXG4gIHJhZGlvLWNoZWNrZWQtY2hlY2ttYXJrOiBjb2xvci1wcmltYXJ5LFxuKTtcblxuLy8gcmVnaXN0ZXIgdGhlIHRoZW1lXG4kbmItdGhlbWVzOiBuYi1yZWdpc3Rlci10aGVtZSgkdGhlbWUsIGNvc21pYywgZGVmYXVsdCk7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWt2ZW8uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICovXG5cbkBpbXBvcnQgJy4uL2NvcmUvZnVuY3Rpb25zJztcbkBpbXBvcnQgJy4uL2NvcmUvbWl4aW5zJztcbkBpbXBvcnQgJ2RlZmF1bHQnO1xuXG4vLyBkZWZhdWx0IHRoZSBiYXNlIHRoZW1lXG4kdGhlbWU6IChcbiAgaGVhZGVyLWZnOiAjZjdmYWZiLFxuICBoZWFkZXItYmc6ICMxMTEyMTgsXG5cbiAgbGF5b3V0LWJnOiAjZjFmNWY4LFxuXG4gIGNvbG9yLWZnLWhlYWRpbmc6ICMxODE4MTgsXG4gIGNvbG9yLWZnLXRleHQ6ICM0YjRiNGIsXG4gIGNvbG9yLWZnLWhpZ2hsaWdodDogY29sb3ItZmcsXG5cbiAgc2VwYXJhdG9yOiAjY2RkNWRjLFxuXG4gIHJhZGl1czogMC4xN3JlbSxcblxuICBzY3JvbGxiYXItYmc6ICNlM2U5ZWUsXG5cbiAgY29sb3ItcHJpbWFyeTogIzczYTFmZixcbiAgY29sb3Itc3VjY2VzczogIzVkY2ZlMyxcbiAgY29sb3ItaW5mbzogI2JhN2ZlYyxcbiAgY29sb3Itd2FybmluZzogI2ZmYTM2YixcbiAgY29sb3ItZGFuZ2VyOiAjZmY2YjgzLFxuXG4gIGJ0bi1zZWNvbmRhcnktYmc6ICNlZGYyZjUsXG4gIGJ0bi1zZWNvbmRhcnktYm9yZGVyOiAjZWRmMmY1LFxuXG4gIGFjdGlvbnMtZmc6ICNkM2RiZTUsXG4gIGFjdGlvbnMtYmc6IGNvbG9yLWJnLFxuXG4gIHNpZGViYXItYmc6ICNlM2U5ZWUsXG5cbiAgYm9yZGVyLWNvbG9yOiAjZDVkYmUwLFxuXG4gIG1lbnUtZm9udC13ZWlnaHQ6IGZvbnQtd2VpZ2h0LWJvbGRlcixcbiAgbWVudS1mZzogY29sb3ItZmctdGV4dCxcbiAgbWVudS1iZzogI2UzZTllZSxcbiAgbWVudS1hY3RpdmUtZmc6IGNvbG9yLWZnLWhlYWRpbmcsXG4gIG1lbnUtYWN0aXZlLWJnOiBtZW51LWJnLFxuXG4gIG1lbnUtc3VibWVudS1iZzogbWVudS1iZyxcbiAgbWVudS1zdWJtZW51LWZnOiBjb2xvci1mZy10ZXh0LFxuICBtZW51LXN1Ym1lbnUtYWN0aXZlLWZnOiBjb2xvci1mZy1oZWFkaW5nLFxuICBtZW51LXN1Ym1lbnUtYWN0aXZlLWJnOiAjY2RkNWRjLFxuICBtZW51LXN1Ym1lbnUtYWN0aXZlLWJvcmRlci1jb2xvcjogbWVudS1zdWJtZW51LWFjdGl2ZS1iZyxcbiAgbWVudS1zdWJtZW51LWFjdGl2ZS1zaGFkb3c6IG5vbmUsXG4gIG1lbnUtc3VibWVudS1ob3Zlci1mZzogbWVudS1zdWJtZW51LWFjdGl2ZS1mZyxcbiAgbWVudS1zdWJtZW51LWhvdmVyLWJnOiBtZW51LWJnLFxuICBtZW51LXN1Ym1lbnUtaXRlbS1ib3JkZXItd2lkdGg6IDAuMTI1cmVtLFxuICBtZW51LXN1Ym1lbnUtaXRlbS1ib3JkZXItcmFkaXVzOiByYWRpdXMsXG4gIG1lbnUtc3VibWVudS1pdGVtLXBhZGRpbmc6IDAuNXJlbSAxcmVtLFxuICBtZW51LXN1Ym1lbnUtaXRlbS1jb250YWluZXItcGFkZGluZzogMCAxLjI1cmVtLFxuICBtZW51LXN1Ym1lbnUtcGFkZGluZzogMC41cmVtLFxuXG4gIGJ0bi1ib3JkZXItcmFkaXVzOiBidG4tc2VtaS1yb3VuZC1ib3JkZXItcmFkaXVzLFxuXG4gIGJ0bi1oZXJvLWRlZ3JlZTogMGRlZyxcbiAgYnRuLWhlcm8tcHJpbWFyeS1kZWdyZWU6IGJ0bi1oZXJvLWRlZ3JlZSxcbiAgYnRuLWhlcm8tc3VjY2Vzcy1kZWdyZWU6IGJ0bi1oZXJvLWRlZ3JlZSxcbiAgYnRuLWhlcm8td2FybmluZy1kZWdyZWU6IGJ0bi1oZXJvLWRlZ3JlZSxcbiAgYnRuLWhlcm8taW5mby1kZWdyZWU6IGJ0bi1oZXJvLWRlZ3JlZSxcbiAgYnRuLWhlcm8tZGFuZ2VyLWRlZ3JlZTogYnRuLWhlcm8tZGVncmVlLFxuICBidG4taGVyby1zZWNvbmRhcnktZGVncmVlOiBidG4taGVyby1kZWdyZWUsXG4gIGJ0bi1oZXJvLWdsb3ctc2l6ZTogMCAwIDIwcHggMCxcbiAgYnRuLWhlcm8tcHJpbWFyeS1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLWhlcm8tc3VjY2Vzcy1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLWhlcm8td2FybmluZy1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLWhlcm8taW5mby1nbG93LXNpemU6IGJ0bi1oZXJvLWdsb3ctc2l6ZSxcbiAgYnRuLWhlcm8tZGFuZ2VyLWdsb3ctc2l6ZTogYnRuLWhlcm8tZ2xvdy1zaXplLFxuICBidG4taGVyby1zZWNvbmRhcnktZ2xvdy1zaXplOiAwIDAgMCAwLFxuICBidG4taGVyby1ib3JkZXItcmFkaXVzOiBidG4tYm9yZGVyLXJhZGl1cyxcblxuICBjYXJkLXNoYWRvdzogbm9uZSxcbiAgY2FyZC1ib3JkZXItd2lkdGg6IDFweCxcbiAgY2FyZC1ib3JkZXItY29sb3I6IGJvcmRlci1jb2xvcixcbiAgY2FyZC1oZWFkZXItYm9yZGVyLXdpZHRoOiAwLFxuXG4gIGxpbmstY29sb3I6ICM1ZGNmZTMsXG4gIGxpbmstY29sb3ItaG92ZXI6ICM3ZGNmZTMsXG4gIGxpbmstY29sb3ItdmlzaXRlZDogbGluay1jb2xvcixcblxuICBhY3Rpb25zLXNlcGFyYXRvcjogI2YxZjRmNSxcblxuICBtb2RhbC1zZXBhcmF0b3I6IGJvcmRlci1jb2xvcixcblxuICB0YWJzLXNlbGVjdGVkOiBjb2xvci1wcmltYXJ5LFxuICB0YWJzLXNlbGVjdGVkLXNlY29uZC1jb2xvcjogY29sb3ItcHJpbWFyeSxcbiAgdGFicy1zZXBhcmF0b3I6ICNlYmVjZWUsXG5cbiAgc21hcnQtdGFibGUtcGFnaW5nLWJnLWFjdGl2ZTogY29sb3ItcHJpbWFyeSxcblxuICByb3V0ZS10YWJzLXNlbGVjdGVkOiBjb2xvci1wcmltYXJ5LFxuXG4gIHBvcG92ZXItYm9yZGVyOiBjb2xvci1wcmltYXJ5LFxuXG4gIGZvb3Rlci1zaGFkb3c6IG5vbmUsXG4gIGZvb3Rlci1zZXBhcmF0b3I6IGJvcmRlci1jb2xvcixcbiAgZm9vdGVyLWZnLWhpZ2hsaWdodDogIzJhMmEyYSxcblxuICBjYWxlbmRhci10b2RheS1pdGVtLWJnOiAjYTJiMmM3LFxuICBjYWxlbmRhci1hY3RpdmUtaXRlbS1iZzogY29sb3ItcHJpbWFyeSxcbiAgY2FsZW5kYXItcmFuZ2UtYmctaW4tcmFuZ2U6ICNlM2VjZmUsXG4gIGNhbGVuZGFyLXRvZGF5LWZnOiBjb2xvci13aGl0ZSxcblxuICB0b2FzdHItaWNvbi1yYWRpdXM6IHJhZGl1cyxcblxuICBkYXRlcGlja2VyLWJvcmRlcjogY29sb3ItcHJpbWFyeSxcbik7XG5cbi8vIHJlZ2lzdGVyIHRoZSB0aGVtZVxuJG5iLXRoZW1lczogbmItcmVnaXN0ZXItdGhlbWUoJHRoZW1lLCBjb3Jwb3JhdGUsIGRlZmF1bHQpO1xuIiwiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuXG4kZ3JpZC1jb2x1bW5zOiAxMiAhZGVmYXVsdDtcbiRncmlkLWd1dHRlci13aWR0aC1iYXNlOiAyNHB4ICFkZWZhdWx0O1xuJGdyaWQtZ3V0dGVyLXdpZHRoczogKFxuICB4czogJGdyaWQtZ3V0dGVyLXdpZHRoLWJhc2UsXG4gIHNtOiAkZ3JpZC1ndXR0ZXItd2lkdGgtYmFzZSxcbiAgbWQ6ICRncmlkLWd1dHRlci13aWR0aC1iYXNlLFxuICBsZzogJGdyaWQtZ3V0dGVyLXdpZHRoLWJhc2UsXG4gIHhsOiAkZ3JpZC1ndXR0ZXItd2lkdGgtYmFzZVxuKSAhZGVmYXVsdDtcblxuXG4kZ3JpZC1icmVha3BvaW50czogKFxuICB4czogMCxcbiAgaXM6IDQwMHB4LFxuICBzbTogNTc2cHgsXG4gIG1kOiA3NjhweCxcbiAgbGc6IDk5MnB4LFxuICB4bDogMTIwMHB4LFxuICB4eGw6IDE0MDBweCxcbiAgeHh4bDogMTYwMHB4XG4pO1xuXG4kY29udGFpbmVyLW1heC13aWR0aHM6IChcbiAgaXM6IDM4MHB4LFxuICBzbTogNTQwcHgsXG4gIG1kOiA3MjBweCxcbiAgbGc6IDk2MHB4LFxuICB4bDogMTE0MHB4LFxuICB4eGw6IDEzMjBweCxcbiAgeHh4bDogMTUwMHB4XG4pO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xufVxuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xuICAkbjogaW5kZXgoJGJyZWFrcG9pbnQtbmFtZXMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XG59XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAcmV0dXJuIGlmKCRuZXh0LCBicmVha3BvaW50LW1pbigkbmV4dCwgJGJyZWFrcG9pbnRzKSAtIDAuMDJweCwgbnVsbCk7XG59XG5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCJAaW1wb3J0ICcuLi8uLi9zdHlsZXMvdGhlbWVzJztcbkBpbXBvcnQgJ35ib290c3RyYXAvc2Nzcy9taXhpbnMvYnJlYWtwb2ludHMnO1xuQGltcG9ydCAnfkBuZWJ1bGFyL3RoZW1lL3N0eWxlcy9nbG9iYWwvYnJlYWtwb2ludHMnO1xuXG5AaW5jbHVkZSBuYi1pbnN0YWxsLWNvbXBvbmVudCgpIHtcbiAgbmItbGF5b3V0LWNvbHVtbi5zbWFsbCB7XG4gICAgZmxleDogMC4xNSAhaW1wb3J0YW50O1xuICB9XG5cbiAgbmItc2lkZWJhci5zZXR0aW5ncy1zaWRlYmFyIHtcbiAgICAkc2lkZWJhci13aWR0aDogNy41cmVtO1xuXG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBlYXNlO1xuICAgIHdpZHRoOiAkc2lkZWJhci13aWR0aDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJi5jb2xsYXBzZWQge1xuICAgICAgd2lkdGg6IDA7XG5cbiAgICAgIC9kZWVwLyAubWFpbi1jb250YWluZXIge1xuICAgICAgICB3aWR0aDogMDtcblxuICAgICAgICAuc2Nyb2xsYWJsZSB7XG4gICAgICAgICAgd2lkdGg6ICRzaWRlYmFyLXdpZHRoO1xuICAgICAgICAgIHBhZGRpbmc6IDEuMjVyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvZGVlcC8gLm1haW4tY29udGFpbmVyIHtcbiAgICAgIHdpZHRoOiAkc2lkZWJhci13aWR0aDtcbiAgICAgIGJhY2tncm91bmQ6IG5iLXRoZW1lKGNvbG9yLWJnKTtcbiAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgZWFzZTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgIC5zY3JvbGxhYmxlIHtcbiAgICAgICAgd2lkdGg6ICRzaWRlYmFyLXdpZHRoO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBuYi1mb3ItdGhlbWUoY29zbWljKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5iLXRoZW1lKGxheW91dC1iZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmItc2lkZWJhci5tZW51LXNpZGViYXIge1xuXG4gICAgbWFyZ2luLXRvcDogbmItdGhlbWUoc2lkZWJhci1oZWFkZXItZ2FwKTtcbiAgICBcblxuICAgIEBpbmNsdWRlIG5iLWZvci10aGVtZShjb3Jwb3JhdGUpIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgL2RlZXAvIC5tYWluLWNvbnRhaW5lciB7XG4gICAgICBoZWlnaHQ6XG4gICAgICAgIGNhbGMoI3tuYi10aGVtZShzaWRlYmFyLWhlaWdodCl9IC0gI3tuYi10aGVtZShoZWFkZXItaGVpZ2h0KX0gLSAje25iLXRoZW1lKHNpZGViYXItaGVhZGVyLWdhcCl9KSAhaW1wb3J0YW50O1xuICAgICAgQGluY2x1ZGUgbmItbHRyKGJvcmRlci10b3AtcmlnaHQtcmFkaXVzLCBuYi10aGVtZShyYWRpdXMpKTtcbiAgICAgIEBpbmNsdWRlIG5iLXJ0bChib3JkZXItdG9wLWxlZnQtcmFkaXVzLCBuYi10aGVtZShyYWRpdXMpKTtcblxuICAgICAgQGluY2x1ZGUgbmItZm9yLXRoZW1lKGNvcnBvcmF0ZSkge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBuYi10aGVtZShzZXBhcmF0b3IpO1xuICAgICAgICBoZWlnaHQ6XG4gICAgICAgICAgY2FsYygje25iLXRoZW1lKHNpZGViYXItaGVpZ2h0KX0gLSAje25iLXRoZW1lKGhlYWRlci1oZWlnaHQpfSkgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvZGVlcC8gLnNjcm9sbGFibGUge1xuICAgICAgQGluY2x1ZGUgbmItZm9yLXRoZW1lKGNvcnBvcmF0ZSkge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcblxuICAgICAgICAubWVudS1pdGVtOmZpcnN0LWNoaWxkIFxuICAgICAgICB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tZW51LWl0ZW1cbiAgICAgICAge1xuICAgICAgICAgIDpob3ZlclxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbG9yOiBibHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC9kZWVwLyBuYi1zaWRlYmFyLWhlYWRlciB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgLm1haW4tYnRuIHtcbiAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMi41cmVtO1xuICAgICAgbWFyZ2luLXRvcDogLTJyZW07XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIHRyYW5zaXRpb246IHBhZGRpbmcgMC4zcyBjdWJpYy1iZXppZXIoMC4xOCwgMC44OSwgMC4zMiwgMS40OCk7XG5cbiAgICAgIEBpbmNsdWRlIG5iLWZvci10aGVtZShjb3Jwb3JhdGUpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogbmItdGhlbWUocmFkaXVzKTtcbiAgICAgIH1cblxuICAgICAgaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgICB9XG4gICAgICBzcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgbmItbHRyKHBhZGRpbmctbGVmdCwgMC4yNXJlbSk7XG4gICAgICAgIEBpbmNsdWRlIG5iLXJ0bChwYWRkaW5nLXJpZ2h0LCAwLjI1cmVtKTtcbiAgICAgIH1cblxuICAgICAgaSwgc3BhbiB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5jb21wYWN0ZWQge1xuXG4gICAgICAvZGVlcC8gbmItc2lkZWJhci1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC5tYWluLWJ0biB7XG4gICAgICAgIHdpZHRoOiA0NnB4O1xuICAgICAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgICAgIHBhZGRpbmc6IDAuMzc1cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bih4cykge1xuICAgIC5tYWluLWNvbnRlbnQge1xuICAgICAgcGFkZGluZzogMC43NXJlbSAhaW1wb3J0YW50O1xuXG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHNtKSB7XG5cbiAgICBuYi1zaWRlYmFyLm1lbnUtc2lkZWJhciB7XG5cbiAgICAgIG1hcmdpbi10b3A6IDA7XG5cbiAgICAgIC9kZWVwLyAubWFpbi1jb250YWluZXIge1xuICAgICAgICBoZWlnaHQ6IGNhbGMoI3tuYi10aGVtZShzaWRlYmFyLWhlaWdodCl9IC0gI3tuYi10aGVtZShoZWFkZXItaGVpZ2h0KX0pICFpbXBvcnRhbnQ7XG4gICAgICAgIEBpbmNsdWRlIG5iLWx0cihib3JkZXItdG9wLXJpZ2h0LXJhZGl1cywgMCk7XG4gICAgICAgIEBpbmNsdWRlIG5iLXJ0bChib3JkZXItdG9wLWxlZnQtcmFkaXVzLCAwKTtcblxuICAgICAgICAuc2Nyb2xsYWJsZSB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWFpbi1idG4ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEBuZWJ1bGFyIHRoZW1pbmcgZnJhbWV3b3JrXG5AaW1wb3J0ICd+QG5lYnVsYXIvdGhlbWUvc3R5bGVzL3RoZW1pbmcnO1xuLy8gQG5lYnVsYXIgb3V0IG9mIHRoZSBib3ggdGhlbWVzXG5AaW1wb3J0ICd+QG5lYnVsYXIvdGhlbWUvc3R5bGVzL3RoZW1lcyc7XG5cbi8vIHdoaWNoIHRoZW1lcyB5b3Ugd2hhdCB0byBlbmFibGUgKGVtcHR5IHRvIGVuYWJsZSBhbGwpXG4kbmItZW5hYmxlZC10aGVtZXM6IChjb3Jwb3JhdGUpO1xuXG4kbmItdGhlbWVzOiBuYi1yZWdpc3Rlci10aGVtZSgoXG4gIC8vIGFwcCB3aXNlIHZhcmlhYmxlcyBmb3IgZWFjaCB0aGVtZVxuICBzaWRlYmFyLWhlYWRlci1nYXA6IDJyZW0sXG4gIHNpZGViYXItaGVhZGVyLWhlaWdodDogaW5pdGlhbCxcbiAgbGF5b3V0LWNvbnRlbnQtd2lkdGg6IDE0MDBweCxcblxuICBmb250LW1haW46IFJvYm90byxcbiAgZm9udC1zZWNvbmRhcnk6IEV4byxcblxuICBzd2l0Y2hlci1iYWNrZ3JvdW5kOiAjMmIyZDM0LFxuICBzd2l0Y2hlci1iYWNrZ3JvdW5kLXBlcmNlbnRhZ2U6IDE0JSxcbiAgZHJvcHMtaWNvbi1saW5lLWdhZGllbnQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCNlOWU4ZWIsICNhN2EyYmUpLFxuXG4gIGxpc3QtaXRlbS1ib3JkZXItd2lkdGg6IDFweCxcblxuICBzbGlkZS1vdXQtY29udGFpbmVyLXdpZHRoOiAzMCUsXG4gIHNsaWRlLW91dC1iYWNrZ3JvdW5kOiBcdGxpbmVhci1ncmFkaWVudCgyNzBkZWcsICNmN2ZhZmIgMCUsICNlY2YyZjUgMTAwJSksXG4gIHNsaWRlLW91dC1zaGFkb3ctY29sb3I6IDAgNHB4IDE0cHggMCAjYTJkMmM4LFxuICBzbGlkZS1vdXQtc2hhZG93LWNvbG9yLXJ0bDogMCA0cHggMTRweCAwICNhMmQyYzgsXG5cbiAgY2hhcnQtcGFuZWwtc3VtbWFyeS1ib3gtc2hhZG93OiBub25lLFxuICBjaGFydC1wYW5lbC1zdW1tYXJ5LWJhY2tncm91bmQtY29sb3I6ICNmN2ZhZmIsXG4gIGNoYXJ0LXBhbmVsLXN1bW1hcnktYm9yZGVyLWNvbG9yOiAjZWJlZmYxLFxuICBjaGFydC1wYW5lbC1zdW1tYXJ5LWJvcmRlci13aWR0aDogMXB4LFxuXG4gIGVjb21tZXJjZS1jYXJkLWJvcmRlci13aWR0aDogMXB4LFxuXG4gIHByb2dyZXNzLWJhci1iYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNmZjlmNmYgMCUsICNmZjhiOTcgMTAwJSksXG4pLCBjb3Jwb3JhdGUsIGNvcnBvcmF0ZSk7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWt2ZW8uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICovXG4vKipcbiAqIFRoaXMgaXMgYSBzdGFydGluZyBwb2ludCB3aGVyZSB3ZSBkZWNsYXJlIHRoZSBtYXBzIG9mIHRoZW1lcyBhbmQgZ2xvYmFsbHkgYXZhaWxhYmxlIGZ1bmN0aW9ucy9taXhpbnNcbiAqL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuLyoqXG4gKiBUaGlzIG1peGluIGdlbmVyYXRlcyBrZXlmYW1lcy5cbiAqIEJlY2F1c2Ugb2YgYWxsIGtleWZyYW1lcyBjYW4ndCBiZSBzY29wZWQsXG4gKiB3ZSBuZWVkIHRvIHB1dHMgdW5pcXVlIG5hbWUgaW4gZWFjaCBidG4tcHVsc2UgY2FsbC5cbiAqL1xuLypcblxuQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIChodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXNjb3BpbmctMS8jaG9zdC1zZWxlY3Rvcilcbjpob3N0IGFuZCA6aG9zdC1jb250ZXh0IGFyZSBwc2V1ZG8tY2xhc3Nlcy4gU28gd2UgYXNzdW1lIHRoZXkgY291bGQgYmUgY29tYmluZWQsXG5saWtlIG90aGVyIHBzZXVkby1jbGFzc2VzLCBldmVuIHNhbWUgb25lcy5cbkZvciBleGFtcGxlOiAnOm50aC1vZi10eXBlKDJuKTpudGgtb2YtdHlwZShldmVuKScuXG5cbklkZWFsIHNvbHV0aW9uIHdvdWxkIGJlIHRvIHByZXBlbmQgYW55IHNlbGVjdG9yIHdpdGggOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pLlxuVGhlbiBuZWJ1bGFyIGNvbXBvbmVudHMgd2lsbCBiZWhhdmUgYXMgYW4gaHRtbCBlbGVtZW50IGFuZCByZXNwb25kIHRvIFtkaXJdIGF0dHJpYnV0ZSBvbiBhbnkgbGV2ZWwsXG5zbyBkaXJlY3Rpb24gY291bGQgYmUgb3ZlcnJpZGRlbiBvbiBhbnkgY29tcG9uZW50IGxldmVsLlxuXG5JbXBsZW1lbnRhdGlvbiBjb2RlOlxuXG5AbWl4aW4gbmItcnRsKCkge1xuICAvLyBhZGQgIyB0byBzY3NzIGludGVycG9sYXRpb24gc3RhdGVtZW50LlxuICAvLyBpdCB3b3JrcyBpbiBjb21tZW50cyBhbmQgd2UgY2FuJ3QgdXNlIGl0IGhlcmVcbiAgQGF0LXJvb3Qge3NlbGVjdG9yLWFwcGVuZCgnOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pJywgJil9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5BbmQgd2hlbiB3ZSBjYWxsIGl0IHNvbWV3aGVyZTpcblxuOmhvc3Qge1xuICAuc29tZS1jbGFzcyB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkge1xuICAgICAgLi4uXG4gICAgfVxuICB9XG59XG46aG9zdC1jb250ZXh0KC4uLikge1xuICAuc29tZS1jbGFzcyB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkge1xuICAgICAgLi4uXG4gICAgfVxuICB9XG59XG5cblJlc3VsdCB3aWxsIGxvb2sgbGlrZTpcblxuOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pOmhvc3QgLnNvbWUtY2xhc3Mge1xuICAuLi5cbn1cbjpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0LWNvbnRleHQoLi4uKSAuc29tZS1jbGFzcyB7XG4gIC4uLlxufVxuXG4qXG4gIFNpZGUgbm90ZTpcbiAgOmhvc3QtY29udGV4dCgpOmhvc3Qgc2VsZWN0b3IgYXJlIHZhbGlkLiBodHRwczovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LXN0eWxlLzIwMTVGZWIvMDMwNS5odG1sXG5cbiAgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pOmhvc3QtY29udGV4dCguLi4pIHNob3VsZCBtYXRjaCBhbnkgcGVybXV0YXRpb24sXG4gIHNvIG9yZGVyIGlzIG5vdCBpbXBvcnRhbnQuXG4qXG5cblxuQ3VycmVudGx5LCB0aGVyZSdyZSB0d28gcHJvYmxlbXMgd2l0aCB0aGlzIGFwcHJvYWNoOlxuXG5GaXJzdCwgaXMgdGhhdCB3ZSBjYW4ndCBjb21iaW5lIDpob3N0LCA6aG9zdC1jb250ZXh0LiBBbmd1bGFyIGJ1Z3MgIzE0MzQ5LCAjMTkxOTkuXG5Gb3IgdGhlIG1vbWVudCBvZiB3cml0aW5nLCB0aGUgb25seSBwb3NzaWJsZSB3YXkgaXM6XG46aG9zdCB7XG4gIDpob3N0LWNvbnRleHQoLi4uKSB7XG4gICAgLi4uXG4gIH1cbn1cbkl0IGRvZXNuJ3Qgd29yayBmb3IgdXMgYmVjYXVzZSBtaXhpbiBjb3VsZCBiZSBjYWxsZWQgc29tZXdoZXJlIGRlZXBlciwgbGlrZTpcbjpob3N0IHtcbiAgcCB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkgeyAuLi4gfVxuICB9XG59XG5XZSBhcmUgbm90IGFibGUgdG8gZ28gdXAgdG8gOmhvc3QgbGV2ZWwgdG8gcGxhY2UgY29udGVudCBwYXNzZWQgdG8gbWl4aW4uXG5cblRoZSBzZWNvbmQgcHJvYmxlbSBpcyB0aGF0IHdlIG9ubHkgY2FuIGJlIHN1cmUgdGhhdCB3ZSBhcHBlbmRpbmcgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHRvIGFub3RoZXJcbjpob3N0Lzpob3N0LWNvbnRleHQgcHNldWRvLWNsYXNzIHdoZW4gY2FsbGVkIGluIHRoZW1lIGZpbGVzICgqLnRoZW1lLnNjc3MpLlxuICAqXG4gICAgU2lkZSBub3RlOlxuICAgIEN1cnJlbnRseSwgbmItaW5zdGFsbC1jb21wb25lbnQgdXNlcyBhbm90aGVyIGFwcHJvYWNoIHdoZXJlIDpob3N0IHByZXBlbmRlZCB3aXRoIHRoZSB0aGVtZSBuYW1lXG4gICAgKGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi81Yjk2MDc4NjI0YjBhNDc2MGYyZGJjZjZmZGYwYmQ2Mjc5MWJlNWJiL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy9zaGFkb3dfY3NzLnRzI0w0NDEpLFxuICAgIGJ1dCBpdCB3YXMgbWFkZSB0byBiZSBhYmxlIHRvIHVzZSBjdXJyZW50IHJlYWxpemF0aW9uIG9mIHJ0bCBhbmQgaXQgY2FuIGJlIHJld3JpdHRlbiBiYWNrIHRvXG4gICAgOmhvc3QtY29udGV4dCgkdGhlbWUpIG9uY2Ugd2Ugd2lsbCBiZSBhYmxlIHRvIHVzZSBtdWx0aXBsZSBzaGFkb3cgc2VsZWN0b3JzLlxuICAqXG5CdXQgd2hlbiBpdCdzIGNhbGxlZCBpbiAqLmNvbXBvbmVudC5zY3NzIHdlIGNhbid0IGJlIHN1cmUsIHRoYXQgc2VsZWN0b3Igc3RhcnRzIHdpdGggOmhvc3QvOmhvc3QtY29udGV4dCxcbmJlY2F1c2UgYW5ndWxhciBhbGxvd3Mgb21pdHRpbmcgcHNldWRvLWNsYXNzZXMgaWYgd2UgZG9uJ3QgbmVlZCB0byBzdHlsZSA6aG9zdCBjb21wb25lbnQgaXRzZWxmLlxuV2UgY2FuIGJyZWFrIHN1Y2ggc2VsZWN0b3JzLCBieSBqdXN0IGFwcGVuZGluZyA6aG9zdC1jb250ZXh0KFtkaXI9cnRsXSkgdG8gdGhlbS5cbiAgKioqXG4gICAgUG9zc2libGUgc29sdXRpb25cbiAgICBjaGVjayBpZiB3ZSBpbiB0aGVtZSBieSBzb21lIHRoZW1lIHZhcmlhYmxlcyBhbmQgaWYgc28gYXBwZW5kLCBvdGhlcndpc2UgbmVzdCBsaWtlXG4gICAgQGF0LXJvb3QgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHtcbiAgICAgIC8vIGFkZCAjIHRvIHNjc3MgaW50ZXJwb2xhdGlvbiBzdGF0ZW1lbnQuXG4gICAgICAvLyBpdCB3b3JrcyBpbiBjb21tZW50cyBhbmQgd2UgY2FuJ3QgdXNlIGl0IGhlcmVcbiAgICAgIHsmfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBXaGF0IGlmIDpob3N0IHNwZWNpZmllZD8gQ2FuIHdlIGFkZCBzcGFjZSBpbiA6aG9zdC1jb250ZXh0KC4uLikgOmhvc3Q/XG4gICAgT3IgbWF5YmUgYWRkIDpob3N0IHNlbGVjdG9yIGFueXdheT8gSWYgbXVsdGlwbGUgOmhvc3Qgc2VsZWN0b3JzIGFyZSBhbGxvd2VkXG4gICoqKlxuXG5cblByb2JsZW1zIHdpdGggdGhlIGN1cnJlbnQgYXBwcm9hY2guXG5cbjEuIERpcmVjdGlvbiBjYW4gYmUgYXBwbGllZCBvbmx5IG9uIGRvY3VtZW50IGxldmVsLCBiZWNhdXNlIG1peGluIHByZXBlbmRzIHRoZW1lIGNsYXNzLFxud2hpY2ggcGxhY2VkIG9uIHRoZSBib2R5LlxuMi4gKi5jb21wb25lbnQuc2NzcyBzdHlsZXMgc2hvdWxkIGJlIGluIDpob3N0IHNlbGVjdG9yLiBPdGhlcndpc2UgYW5ndWxhciB3aWxsIGFkZCBob3N0XG5hdHRyaWJ1dGUgdG8gW2Rpcj1ydGxdIGF0dHJpYnV0ZSBhcyB3ZWxsLlxuXG5cbkdlbmVyYWwgcHJvYmxlbXMuXG5cbkx0ciBpcyBkZWZhdWx0IGRvY3VtZW50IGRpcmVjdGlvbiwgYnV0IGZvciBwcm9wZXIgd29yayBvZiBuYi1sdHIgKG1lYW5zIGx0ciBvbmx5KSxcbltkaXI9bHRyXSBzaG91bGQgYmUgc3BlY2lmaWVkIGF0IGxlYXN0IHNvbWV3aGVyZS4gJzpub3QoW2Rpcj1ydGxdJyBub3QgYXBwbGljYWJsZSBoZXJlLFxuYmVjYXVzZSBpdCdzIHNhdGlzZnkgYW55IHBhcmVudCwgdGhhdCBkb24ndCBoYXZlIFtkaXI9cnRsXSBhdHRyaWJ1dGUuXG5QcmV2aW91cyBhcHByb2FjaCB3YXMgdG8gdXNlIHNpbmdsZSBydGwgbWl4aW4gYW5kIHJlc2V0IGx0ciBwcm9wZXJ0aWVzIHRvIGluaXRpYWwgdmFsdWUuXG5CdXQgc29tZXRpbWVzIGl0J3MgaGFyZCB0byBmaW5kLCB3aGF0IHRoZSBwcmV2aW91cyB2YWx1ZSBzaG91bGQgYmUuIEFuZCBzdWNoIG1peGluIGNhbGwgbG9va3MgdG9vIHZlcmJvc2UuXG4qL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuLyoqXG4gKiBUaGlzIG1peGluIGdlbmVyYXRlcyBrZXlmYW1lcy5cbiAqIEJlY2F1c2Ugb2YgYWxsIGtleWZyYW1lcyBjYW4ndCBiZSBzY29wZWQsXG4gKiB3ZSBuZWVkIHRvIHB1dHMgdW5pcXVlIG5hbWUgaW4gZWFjaCBidG4tcHVsc2UgY2FsbC5cbiAqL1xuLypcblxuQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIChodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXNjb3BpbmctMS8jaG9zdC1zZWxlY3Rvcilcbjpob3N0IGFuZCA6aG9zdC1jb250ZXh0IGFyZSBwc2V1ZG8tY2xhc3Nlcy4gU28gd2UgYXNzdW1lIHRoZXkgY291bGQgYmUgY29tYmluZWQsXG5saWtlIG90aGVyIHBzZXVkby1jbGFzc2VzLCBldmVuIHNhbWUgb25lcy5cbkZvciBleGFtcGxlOiAnOm50aC1vZi10eXBlKDJuKTpudGgtb2YtdHlwZShldmVuKScuXG5cbklkZWFsIHNvbHV0aW9uIHdvdWxkIGJlIHRvIHByZXBlbmQgYW55IHNlbGVjdG9yIHdpdGggOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pLlxuVGhlbiBuZWJ1bGFyIGNvbXBvbmVudHMgd2lsbCBiZWhhdmUgYXMgYW4gaHRtbCBlbGVtZW50IGFuZCByZXNwb25kIHRvIFtkaXJdIGF0dHJpYnV0ZSBvbiBhbnkgbGV2ZWwsXG5zbyBkaXJlY3Rpb24gY291bGQgYmUgb3ZlcnJpZGRlbiBvbiBhbnkgY29tcG9uZW50IGxldmVsLlxuXG5JbXBsZW1lbnRhdGlvbiBjb2RlOlxuXG5AbWl4aW4gbmItcnRsKCkge1xuICAvLyBhZGQgIyB0byBzY3NzIGludGVycG9sYXRpb24gc3RhdGVtZW50LlxuICAvLyBpdCB3b3JrcyBpbiBjb21tZW50cyBhbmQgd2UgY2FuJ3QgdXNlIGl0IGhlcmVcbiAgQGF0LXJvb3Qge3NlbGVjdG9yLWFwcGVuZCgnOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pJywgJil9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5BbmQgd2hlbiB3ZSBjYWxsIGl0IHNvbWV3aGVyZTpcblxuOmhvc3Qge1xuICAuc29tZS1jbGFzcyB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkge1xuICAgICAgLi4uXG4gICAgfVxuICB9XG59XG46aG9zdC1jb250ZXh0KC4uLikge1xuICAuc29tZS1jbGFzcyB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkge1xuICAgICAgLi4uXG4gICAgfVxuICB9XG59XG5cblJlc3VsdCB3aWxsIGxvb2sgbGlrZTpcblxuOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pOmhvc3QgLnNvbWUtY2xhc3Mge1xuICAuLi5cbn1cbjpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0LWNvbnRleHQoLi4uKSAuc29tZS1jbGFzcyB7XG4gIC4uLlxufVxuXG4qXG4gIFNpZGUgbm90ZTpcbiAgOmhvc3QtY29udGV4dCgpOmhvc3Qgc2VsZWN0b3IgYXJlIHZhbGlkLiBodHRwczovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LXN0eWxlLzIwMTVGZWIvMDMwNS5odG1sXG5cbiAgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pOmhvc3QtY29udGV4dCguLi4pIHNob3VsZCBtYXRjaCBhbnkgcGVybXV0YXRpb24sXG4gIHNvIG9yZGVyIGlzIG5vdCBpbXBvcnRhbnQuXG4qXG5cblxuQ3VycmVudGx5LCB0aGVyZSdyZSB0d28gcHJvYmxlbXMgd2l0aCB0aGlzIGFwcHJvYWNoOlxuXG5GaXJzdCwgaXMgdGhhdCB3ZSBjYW4ndCBjb21iaW5lIDpob3N0LCA6aG9zdC1jb250ZXh0LiBBbmd1bGFyIGJ1Z3MgIzE0MzQ5LCAjMTkxOTkuXG5Gb3IgdGhlIG1vbWVudCBvZiB3cml0aW5nLCB0aGUgb25seSBwb3NzaWJsZSB3YXkgaXM6XG46aG9zdCB7XG4gIDpob3N0LWNvbnRleHQoLi4uKSB7XG4gICAgLi4uXG4gIH1cbn1cbkl0IGRvZXNuJ3Qgd29yayBmb3IgdXMgYmVjYXVzZSBtaXhpbiBjb3VsZCBiZSBjYWxsZWQgc29tZXdoZXJlIGRlZXBlciwgbGlrZTpcbjpob3N0IHtcbiAgcCB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkgeyAuLi4gfVxuICB9XG59XG5XZSBhcmUgbm90IGFibGUgdG8gZ28gdXAgdG8gOmhvc3QgbGV2ZWwgdG8gcGxhY2UgY29udGVudCBwYXNzZWQgdG8gbWl4aW4uXG5cblRoZSBzZWNvbmQgcHJvYmxlbSBpcyB0aGF0IHdlIG9ubHkgY2FuIGJlIHN1cmUgdGhhdCB3ZSBhcHBlbmRpbmcgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHRvIGFub3RoZXJcbjpob3N0Lzpob3N0LWNvbnRleHQgcHNldWRvLWNsYXNzIHdoZW4gY2FsbGVkIGluIHRoZW1lIGZpbGVzICgqLnRoZW1lLnNjc3MpLlxuICAqXG4gICAgU2lkZSBub3RlOlxuICAgIEN1cnJlbnRseSwgbmItaW5zdGFsbC1jb21wb25lbnQgdXNlcyBhbm90aGVyIGFwcHJvYWNoIHdoZXJlIDpob3N0IHByZXBlbmRlZCB3aXRoIHRoZSB0aGVtZSBuYW1lXG4gICAgKGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi81Yjk2MDc4NjI0YjBhNDc2MGYyZGJjZjZmZGYwYmQ2Mjc5MWJlNWJiL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy9zaGFkb3dfY3NzLnRzI0w0NDEpLFxuICAgIGJ1dCBpdCB3YXMgbWFkZSB0byBiZSBhYmxlIHRvIHVzZSBjdXJyZW50IHJlYWxpemF0aW9uIG9mIHJ0bCBhbmQgaXQgY2FuIGJlIHJld3JpdHRlbiBiYWNrIHRvXG4gICAgOmhvc3QtY29udGV4dCgkdGhlbWUpIG9uY2Ugd2Ugd2lsbCBiZSBhYmxlIHRvIHVzZSBtdWx0aXBsZSBzaGFkb3cgc2VsZWN0b3JzLlxuICAqXG5CdXQgd2hlbiBpdCdzIGNhbGxlZCBpbiAqLmNvbXBvbmVudC5zY3NzIHdlIGNhbid0IGJlIHN1cmUsIHRoYXQgc2VsZWN0b3Igc3RhcnRzIHdpdGggOmhvc3QvOmhvc3QtY29udGV4dCxcbmJlY2F1c2UgYW5ndWxhciBhbGxvd3Mgb21pdHRpbmcgcHNldWRvLWNsYXNzZXMgaWYgd2UgZG9uJ3QgbmVlZCB0byBzdHlsZSA6aG9zdCBjb21wb25lbnQgaXRzZWxmLlxuV2UgY2FuIGJyZWFrIHN1Y2ggc2VsZWN0b3JzLCBieSBqdXN0IGFwcGVuZGluZyA6aG9zdC1jb250ZXh0KFtkaXI9cnRsXSkgdG8gdGhlbS5cbiAgKioqXG4gICAgUG9zc2libGUgc29sdXRpb25cbiAgICBjaGVjayBpZiB3ZSBpbiB0aGVtZSBieSBzb21lIHRoZW1lIHZhcmlhYmxlcyBhbmQgaWYgc28gYXBwZW5kLCBvdGhlcndpc2UgbmVzdCBsaWtlXG4gICAgQGF0LXJvb3QgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHtcbiAgICAgIC8vIGFkZCAjIHRvIHNjc3MgaW50ZXJwb2xhdGlvbiBzdGF0ZW1lbnQuXG4gICAgICAvLyBpdCB3b3JrcyBpbiBjb21tZW50cyBhbmQgd2UgY2FuJ3QgdXNlIGl0IGhlcmVcbiAgICAgIHsmfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBXaGF0IGlmIDpob3N0IHNwZWNpZmllZD8gQ2FuIHdlIGFkZCBzcGFjZSBpbiA6aG9zdC1jb250ZXh0KC4uLikgOmhvc3Q/XG4gICAgT3IgbWF5YmUgYWRkIDpob3N0IHNlbGVjdG9yIGFueXdheT8gSWYgbXVsdGlwbGUgOmhvc3Qgc2VsZWN0b3JzIGFyZSBhbGxvd2VkXG4gICoqKlxuXG5cblByb2JsZW1zIHdpdGggdGhlIGN1cnJlbnQgYXBwcm9hY2guXG5cbjEuIERpcmVjdGlvbiBjYW4gYmUgYXBwbGllZCBvbmx5IG9uIGRvY3VtZW50IGxldmVsLCBiZWNhdXNlIG1peGluIHByZXBlbmRzIHRoZW1lIGNsYXNzLFxud2hpY2ggcGxhY2VkIG9uIHRoZSBib2R5LlxuMi4gKi5jb21wb25lbnQuc2NzcyBzdHlsZXMgc2hvdWxkIGJlIGluIDpob3N0IHNlbGVjdG9yLiBPdGhlcndpc2UgYW5ndWxhciB3aWxsIGFkZCBob3N0XG5hdHRyaWJ1dGUgdG8gW2Rpcj1ydGxdIGF0dHJpYnV0ZSBhcyB3ZWxsLlxuXG5cbkdlbmVyYWwgcHJvYmxlbXMuXG5cbkx0ciBpcyBkZWZhdWx0IGRvY3VtZW50IGRpcmVjdGlvbiwgYnV0IGZvciBwcm9wZXIgd29yayBvZiBuYi1sdHIgKG1lYW5zIGx0ciBvbmx5KSxcbltkaXI9bHRyXSBzaG91bGQgYmUgc3BlY2lmaWVkIGF0IGxlYXN0IHNvbWV3aGVyZS4gJzpub3QoW2Rpcj1ydGxdJyBub3QgYXBwbGljYWJsZSBoZXJlLFxuYmVjYXVzZSBpdCdzIHNhdGlzZnkgYW55IHBhcmVudCwgdGhhdCBkb24ndCBoYXZlIFtkaXI9cnRsXSBhdHRyaWJ1dGUuXG5QcmV2aW91cyBhcHByb2FjaCB3YXMgdG8gdXNlIHNpbmdsZSBydGwgbWl4aW4gYW5kIHJlc2V0IGx0ciBwcm9wZXJ0aWVzIHRvIGluaXRpYWwgdmFsdWUuXG5CdXQgc29tZXRpbWVzIGl0J3MgaGFyZCB0byBmaW5kLCB3aGF0IHRoZSBwcmV2aW91cyB2YWx1ZSBzaG91bGQgYmUuIEFuZCBzdWNoIG1peGluIGNhbGwgbG9va3MgdG9vIHZlcmJvc2UuXG4qL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuLyoqXG4gKiBUaGlzIG1peGluIGdlbmVyYXRlcyBrZXlmYW1lcy5cbiAqIEJlY2F1c2Ugb2YgYWxsIGtleWZyYW1lcyBjYW4ndCBiZSBzY29wZWQsXG4gKiB3ZSBuZWVkIHRvIHB1dHMgdW5pcXVlIG5hbWUgaW4gZWFjaCBidG4tcHVsc2UgY2FsbC5cbiAqL1xuLypcblxuQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIChodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXNjb3BpbmctMS8jaG9zdC1zZWxlY3Rvcilcbjpob3N0IGFuZCA6aG9zdC1jb250ZXh0IGFyZSBwc2V1ZG8tY2xhc3Nlcy4gU28gd2UgYXNzdW1lIHRoZXkgY291bGQgYmUgY29tYmluZWQsXG5saWtlIG90aGVyIHBzZXVkby1jbGFzc2VzLCBldmVuIHNhbWUgb25lcy5cbkZvciBleGFtcGxlOiAnOm50aC1vZi10eXBlKDJuKTpudGgtb2YtdHlwZShldmVuKScuXG5cbklkZWFsIHNvbHV0aW9uIHdvdWxkIGJlIHRvIHByZXBlbmQgYW55IHNlbGVjdG9yIHdpdGggOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pLlxuVGhlbiBuZWJ1bGFyIGNvbXBvbmVudHMgd2lsbCBiZWhhdmUgYXMgYW4gaHRtbCBlbGVtZW50IGFuZCByZXNwb25kIHRvIFtkaXJdIGF0dHJpYnV0ZSBvbiBhbnkgbGV2ZWwsXG5zbyBkaXJlY3Rpb24gY291bGQgYmUgb3ZlcnJpZGRlbiBvbiBhbnkgY29tcG9uZW50IGxldmVsLlxuXG5JbXBsZW1lbnRhdGlvbiBjb2RlOlxuXG5AbWl4aW4gbmItcnRsKCkge1xuICAvLyBhZGQgIyB0byBzY3NzIGludGVycG9sYXRpb24gc3RhdGVtZW50LlxuICAvLyBpdCB3b3JrcyBpbiBjb21tZW50cyBhbmQgd2UgY2FuJ3QgdXNlIGl0IGhlcmVcbiAgQGF0LXJvb3Qge3NlbGVjdG9yLWFwcGVuZCgnOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pJywgJil9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5BbmQgd2hlbiB3ZSBjYWxsIGl0IHNvbWV3aGVyZTpcblxuOmhvc3Qge1xuICAuc29tZS1jbGFzcyB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkge1xuICAgICAgLi4uXG4gICAgfVxuICB9XG59XG46aG9zdC1jb250ZXh0KC4uLikge1xuICAuc29tZS1jbGFzcyB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkge1xuICAgICAgLi4uXG4gICAgfVxuICB9XG59XG5cblJlc3VsdCB3aWxsIGxvb2sgbGlrZTpcblxuOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pOmhvc3QgLnNvbWUtY2xhc3Mge1xuICAuLi5cbn1cbjpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0LWNvbnRleHQoLi4uKSAuc29tZS1jbGFzcyB7XG4gIC4uLlxufVxuXG4qXG4gIFNpZGUgbm90ZTpcbiAgOmhvc3QtY29udGV4dCgpOmhvc3Qgc2VsZWN0b3IgYXJlIHZhbGlkLiBodHRwczovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LXN0eWxlLzIwMTVGZWIvMDMwNS5odG1sXG5cbiAgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pOmhvc3QtY29udGV4dCguLi4pIHNob3VsZCBtYXRjaCBhbnkgcGVybXV0YXRpb24sXG4gIHNvIG9yZGVyIGlzIG5vdCBpbXBvcnRhbnQuXG4qXG5cblxuQ3VycmVudGx5LCB0aGVyZSdyZSB0d28gcHJvYmxlbXMgd2l0aCB0aGlzIGFwcHJvYWNoOlxuXG5GaXJzdCwgaXMgdGhhdCB3ZSBjYW4ndCBjb21iaW5lIDpob3N0LCA6aG9zdC1jb250ZXh0LiBBbmd1bGFyIGJ1Z3MgIzE0MzQ5LCAjMTkxOTkuXG5Gb3IgdGhlIG1vbWVudCBvZiB3cml0aW5nLCB0aGUgb25seSBwb3NzaWJsZSB3YXkgaXM6XG46aG9zdCB7XG4gIDpob3N0LWNvbnRleHQoLi4uKSB7XG4gICAgLi4uXG4gIH1cbn1cbkl0IGRvZXNuJ3Qgd29yayBmb3IgdXMgYmVjYXVzZSBtaXhpbiBjb3VsZCBiZSBjYWxsZWQgc29tZXdoZXJlIGRlZXBlciwgbGlrZTpcbjpob3N0IHtcbiAgcCB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkgeyAuLi4gfVxuICB9XG59XG5XZSBhcmUgbm90IGFibGUgdG8gZ28gdXAgdG8gOmhvc3QgbGV2ZWwgdG8gcGxhY2UgY29udGVudCBwYXNzZWQgdG8gbWl4aW4uXG5cblRoZSBzZWNvbmQgcHJvYmxlbSBpcyB0aGF0IHdlIG9ubHkgY2FuIGJlIHN1cmUgdGhhdCB3ZSBhcHBlbmRpbmcgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHRvIGFub3RoZXJcbjpob3N0Lzpob3N0LWNvbnRleHQgcHNldWRvLWNsYXNzIHdoZW4gY2FsbGVkIGluIHRoZW1lIGZpbGVzICgqLnRoZW1lLnNjc3MpLlxuICAqXG4gICAgU2lkZSBub3RlOlxuICAgIEN1cnJlbnRseSwgbmItaW5zdGFsbC1jb21wb25lbnQgdXNlcyBhbm90aGVyIGFwcHJvYWNoIHdoZXJlIDpob3N0IHByZXBlbmRlZCB3aXRoIHRoZSB0aGVtZSBuYW1lXG4gICAgKGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi81Yjk2MDc4NjI0YjBhNDc2MGYyZGJjZjZmZGYwYmQ2Mjc5MWJlNWJiL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy9zaGFkb3dfY3NzLnRzI0w0NDEpLFxuICAgIGJ1dCBpdCB3YXMgbWFkZSB0byBiZSBhYmxlIHRvIHVzZSBjdXJyZW50IHJlYWxpemF0aW9uIG9mIHJ0bCBhbmQgaXQgY2FuIGJlIHJld3JpdHRlbiBiYWNrIHRvXG4gICAgOmhvc3QtY29udGV4dCgkdGhlbWUpIG9uY2Ugd2Ugd2lsbCBiZSBhYmxlIHRvIHVzZSBtdWx0aXBsZSBzaGFkb3cgc2VsZWN0b3JzLlxuICAqXG5CdXQgd2hlbiBpdCdzIGNhbGxlZCBpbiAqLmNvbXBvbmVudC5zY3NzIHdlIGNhbid0IGJlIHN1cmUsIHRoYXQgc2VsZWN0b3Igc3RhcnRzIHdpdGggOmhvc3QvOmhvc3QtY29udGV4dCxcbmJlY2F1c2UgYW5ndWxhciBhbGxvd3Mgb21pdHRpbmcgcHNldWRvLWNsYXNzZXMgaWYgd2UgZG9uJ3QgbmVlZCB0byBzdHlsZSA6aG9zdCBjb21wb25lbnQgaXRzZWxmLlxuV2UgY2FuIGJyZWFrIHN1Y2ggc2VsZWN0b3JzLCBieSBqdXN0IGFwcGVuZGluZyA6aG9zdC1jb250ZXh0KFtkaXI9cnRsXSkgdG8gdGhlbS5cbiAgKioqXG4gICAgUG9zc2libGUgc29sdXRpb25cbiAgICBjaGVjayBpZiB3ZSBpbiB0aGVtZSBieSBzb21lIHRoZW1lIHZhcmlhYmxlcyBhbmQgaWYgc28gYXBwZW5kLCBvdGhlcndpc2UgbmVzdCBsaWtlXG4gICAgQGF0LXJvb3QgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHtcbiAgICAgIC8vIGFkZCAjIHRvIHNjc3MgaW50ZXJwb2xhdGlvbiBzdGF0ZW1lbnQuXG4gICAgICAvLyBpdCB3b3JrcyBpbiBjb21tZW50cyBhbmQgd2UgY2FuJ3QgdXNlIGl0IGhlcmVcbiAgICAgIHsmfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBXaGF0IGlmIDpob3N0IHNwZWNpZmllZD8gQ2FuIHdlIGFkZCBzcGFjZSBpbiA6aG9zdC1jb250ZXh0KC4uLikgOmhvc3Q/XG4gICAgT3IgbWF5YmUgYWRkIDpob3N0IHNlbGVjdG9yIGFueXdheT8gSWYgbXVsdGlwbGUgOmhvc3Qgc2VsZWN0b3JzIGFyZSBhbGxvd2VkXG4gICoqKlxuXG5cblByb2JsZW1zIHdpdGggdGhlIGN1cnJlbnQgYXBwcm9hY2guXG5cbjEuIERpcmVjdGlvbiBjYW4gYmUgYXBwbGllZCBvbmx5IG9uIGRvY3VtZW50IGxldmVsLCBiZWNhdXNlIG1peGluIHByZXBlbmRzIHRoZW1lIGNsYXNzLFxud2hpY2ggcGxhY2VkIG9uIHRoZSBib2R5LlxuMi4gKi5jb21wb25lbnQuc2NzcyBzdHlsZXMgc2hvdWxkIGJlIGluIDpob3N0IHNlbGVjdG9yLiBPdGhlcndpc2UgYW5ndWxhciB3aWxsIGFkZCBob3N0XG5hdHRyaWJ1dGUgdG8gW2Rpcj1ydGxdIGF0dHJpYnV0ZSBhcyB3ZWxsLlxuXG5cbkdlbmVyYWwgcHJvYmxlbXMuXG5cbkx0ciBpcyBkZWZhdWx0IGRvY3VtZW50IGRpcmVjdGlvbiwgYnV0IGZvciBwcm9wZXIgd29yayBvZiBuYi1sdHIgKG1lYW5zIGx0ciBvbmx5KSxcbltkaXI9bHRyXSBzaG91bGQgYmUgc3BlY2lmaWVkIGF0IGxlYXN0IHNvbWV3aGVyZS4gJzpub3QoW2Rpcj1ydGxdJyBub3QgYXBwbGljYWJsZSBoZXJlLFxuYmVjYXVzZSBpdCdzIHNhdGlzZnkgYW55IHBhcmVudCwgdGhhdCBkb24ndCBoYXZlIFtkaXI9cnRsXSBhdHRyaWJ1dGUuXG5QcmV2aW91cyBhcHByb2FjaCB3YXMgdG8gdXNlIHNpbmdsZSBydGwgbWl4aW4gYW5kIHJlc2V0IGx0ciBwcm9wZXJ0aWVzIHRvIGluaXRpYWwgdmFsdWUuXG5CdXQgc29tZXRpbWVzIGl0J3MgaGFyZCB0byBmaW5kLCB3aGF0IHRoZSBwcmV2aW91cyB2YWx1ZSBzaG91bGQgYmUuIEFuZCBzdWNoIG1peGluIGNhbGwgbG9va3MgdG9vIHZlcmJvc2UuXG4qL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuLyoqXG4gKiBUaGlzIG1peGluIGdlbmVyYXRlcyBrZXlmYW1lcy5cbiAqIEJlY2F1c2Ugb2YgYWxsIGtleWZyYW1lcyBjYW4ndCBiZSBzY29wZWQsXG4gKiB3ZSBuZWVkIHRvIHB1dHMgdW5pcXVlIG5hbWUgaW4gZWFjaCBidG4tcHVsc2UgY2FsbC5cbiAqL1xuLypcblxuQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIChodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXNjb3BpbmctMS8jaG9zdC1zZWxlY3Rvcilcbjpob3N0IGFuZCA6aG9zdC1jb250ZXh0IGFyZSBwc2V1ZG8tY2xhc3Nlcy4gU28gd2UgYXNzdW1lIHRoZXkgY291bGQgYmUgY29tYmluZWQsXG5saWtlIG90aGVyIHBzZXVkby1jbGFzc2VzLCBldmVuIHNhbWUgb25lcy5cbkZvciBleGFtcGxlOiAnOm50aC1vZi10eXBlKDJuKTpudGgtb2YtdHlwZShldmVuKScuXG5cbklkZWFsIHNvbHV0aW9uIHdvdWxkIGJlIHRvIHByZXBlbmQgYW55IHNlbGVjdG9yIHdpdGggOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pLlxuVGhlbiBuZWJ1bGFyIGNvbXBvbmVudHMgd2lsbCBiZWhhdmUgYXMgYW4gaHRtbCBlbGVtZW50IGFuZCByZXNwb25kIHRvIFtkaXJdIGF0dHJpYnV0ZSBvbiBhbnkgbGV2ZWwsXG5zbyBkaXJlY3Rpb24gY291bGQgYmUgb3ZlcnJpZGRlbiBvbiBhbnkgY29tcG9uZW50IGxldmVsLlxuXG5JbXBsZW1lbnRhdGlvbiBjb2RlOlxuXG5AbWl4aW4gbmItcnRsKCkge1xuICAvLyBhZGQgIyB0byBzY3NzIGludGVycG9sYXRpb24gc3RhdGVtZW50LlxuICAvLyBpdCB3b3JrcyBpbiBjb21tZW50cyBhbmQgd2UgY2FuJ3QgdXNlIGl0IGhlcmVcbiAgQGF0LXJvb3Qge3NlbGVjdG9yLWFwcGVuZCgnOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pJywgJil9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5BbmQgd2hlbiB3ZSBjYWxsIGl0IHNvbWV3aGVyZTpcblxuOmhvc3Qge1xuICAuc29tZS1jbGFzcyB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkge1xuICAgICAgLi4uXG4gICAgfVxuICB9XG59XG46aG9zdC1jb250ZXh0KC4uLikge1xuICAuc29tZS1jbGFzcyB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkge1xuICAgICAgLi4uXG4gICAgfVxuICB9XG59XG5cblJlc3VsdCB3aWxsIGxvb2sgbGlrZTpcblxuOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pOmhvc3QgLnNvbWUtY2xhc3Mge1xuICAuLi5cbn1cbjpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0LWNvbnRleHQoLi4uKSAuc29tZS1jbGFzcyB7XG4gIC4uLlxufVxuXG4qXG4gIFNpZGUgbm90ZTpcbiAgOmhvc3QtY29udGV4dCgpOmhvc3Qgc2VsZWN0b3IgYXJlIHZhbGlkLiBodHRwczovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LXN0eWxlLzIwMTVGZWIvMDMwNS5odG1sXG5cbiAgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pOmhvc3QtY29udGV4dCguLi4pIHNob3VsZCBtYXRjaCBhbnkgcGVybXV0YXRpb24sXG4gIHNvIG9yZGVyIGlzIG5vdCBpbXBvcnRhbnQuXG4qXG5cblxuQ3VycmVudGx5LCB0aGVyZSdyZSB0d28gcHJvYmxlbXMgd2l0aCB0aGlzIGFwcHJvYWNoOlxuXG5GaXJzdCwgaXMgdGhhdCB3ZSBjYW4ndCBjb21iaW5lIDpob3N0LCA6aG9zdC1jb250ZXh0LiBBbmd1bGFyIGJ1Z3MgIzE0MzQ5LCAjMTkxOTkuXG5Gb3IgdGhlIG1vbWVudCBvZiB3cml0aW5nLCB0aGUgb25seSBwb3NzaWJsZSB3YXkgaXM6XG46aG9zdCB7XG4gIDpob3N0LWNvbnRleHQoLi4uKSB7XG4gICAgLi4uXG4gIH1cbn1cbkl0IGRvZXNuJ3Qgd29yayBmb3IgdXMgYmVjYXVzZSBtaXhpbiBjb3VsZCBiZSBjYWxsZWQgc29tZXdoZXJlIGRlZXBlciwgbGlrZTpcbjpob3N0IHtcbiAgcCB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkgeyAuLi4gfVxuICB9XG59XG5XZSBhcmUgbm90IGFibGUgdG8gZ28gdXAgdG8gOmhvc3QgbGV2ZWwgdG8gcGxhY2UgY29udGVudCBwYXNzZWQgdG8gbWl4aW4uXG5cblRoZSBzZWNvbmQgcHJvYmxlbSBpcyB0aGF0IHdlIG9ubHkgY2FuIGJlIHN1cmUgdGhhdCB3ZSBhcHBlbmRpbmcgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHRvIGFub3RoZXJcbjpob3N0Lzpob3N0LWNvbnRleHQgcHNldWRvLWNsYXNzIHdoZW4gY2FsbGVkIGluIHRoZW1lIGZpbGVzICgqLnRoZW1lLnNjc3MpLlxuICAqXG4gICAgU2lkZSBub3RlOlxuICAgIEN1cnJlbnRseSwgbmItaW5zdGFsbC1jb21wb25lbnQgdXNlcyBhbm90aGVyIGFwcHJvYWNoIHdoZXJlIDpob3N0IHByZXBlbmRlZCB3aXRoIHRoZSB0aGVtZSBuYW1lXG4gICAgKGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi81Yjk2MDc4NjI0YjBhNDc2MGYyZGJjZjZmZGYwYmQ2Mjc5MWJlNWJiL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy9zaGFkb3dfY3NzLnRzI0w0NDEpLFxuICAgIGJ1dCBpdCB3YXMgbWFkZSB0byBiZSBhYmxlIHRvIHVzZSBjdXJyZW50IHJlYWxpemF0aW9uIG9mIHJ0bCBhbmQgaXQgY2FuIGJlIHJld3JpdHRlbiBiYWNrIHRvXG4gICAgOmhvc3QtY29udGV4dCgkdGhlbWUpIG9uY2Ugd2Ugd2lsbCBiZSBhYmxlIHRvIHVzZSBtdWx0aXBsZSBzaGFkb3cgc2VsZWN0b3JzLlxuICAqXG5CdXQgd2hlbiBpdCdzIGNhbGxlZCBpbiAqLmNvbXBvbmVudC5zY3NzIHdlIGNhbid0IGJlIHN1cmUsIHRoYXQgc2VsZWN0b3Igc3RhcnRzIHdpdGggOmhvc3QvOmhvc3QtY29udGV4dCxcbmJlY2F1c2UgYW5ndWxhciBhbGxvd3Mgb21pdHRpbmcgcHNldWRvLWNsYXNzZXMgaWYgd2UgZG9uJ3QgbmVlZCB0byBzdHlsZSA6aG9zdCBjb21wb25lbnQgaXRzZWxmLlxuV2UgY2FuIGJyZWFrIHN1Y2ggc2VsZWN0b3JzLCBieSBqdXN0IGFwcGVuZGluZyA6aG9zdC1jb250ZXh0KFtkaXI9cnRsXSkgdG8gdGhlbS5cbiAgKioqXG4gICAgUG9zc2libGUgc29sdXRpb25cbiAgICBjaGVjayBpZiB3ZSBpbiB0aGVtZSBieSBzb21lIHRoZW1lIHZhcmlhYmxlcyBhbmQgaWYgc28gYXBwZW5kLCBvdGhlcndpc2UgbmVzdCBsaWtlXG4gICAgQGF0LXJvb3QgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHtcbiAgICAgIC8vIGFkZCAjIHRvIHNjc3MgaW50ZXJwb2xhdGlvbiBzdGF0ZW1lbnQuXG4gICAgICAvLyBpdCB3b3JrcyBpbiBjb21tZW50cyBhbmQgd2UgY2FuJ3QgdXNlIGl0IGhlcmVcbiAgICAgIHsmfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBXaGF0IGlmIDpob3N0IHNwZWNpZmllZD8gQ2FuIHdlIGFkZCBzcGFjZSBpbiA6aG9zdC1jb250ZXh0KC4uLikgOmhvc3Q/XG4gICAgT3IgbWF5YmUgYWRkIDpob3N0IHNlbGVjdG9yIGFueXdheT8gSWYgbXVsdGlwbGUgOmhvc3Qgc2VsZWN0b3JzIGFyZSBhbGxvd2VkXG4gICoqKlxuXG5cblByb2JsZW1zIHdpdGggdGhlIGN1cnJlbnQgYXBwcm9hY2guXG5cbjEuIERpcmVjdGlvbiBjYW4gYmUgYXBwbGllZCBvbmx5IG9uIGRvY3VtZW50IGxldmVsLCBiZWNhdXNlIG1peGluIHByZXBlbmRzIHRoZW1lIGNsYXNzLFxud2hpY2ggcGxhY2VkIG9uIHRoZSBib2R5LlxuMi4gKi5jb21wb25lbnQuc2NzcyBzdHlsZXMgc2hvdWxkIGJlIGluIDpob3N0IHNlbGVjdG9yLiBPdGhlcndpc2UgYW5ndWxhciB3aWxsIGFkZCBob3N0XG5hdHRyaWJ1dGUgdG8gW2Rpcj1ydGxdIGF0dHJpYnV0ZSBhcyB3ZWxsLlxuXG5cbkdlbmVyYWwgcHJvYmxlbXMuXG5cbkx0ciBpcyBkZWZhdWx0IGRvY3VtZW50IGRpcmVjdGlvbiwgYnV0IGZvciBwcm9wZXIgd29yayBvZiBuYi1sdHIgKG1lYW5zIGx0ciBvbmx5KSxcbltkaXI9bHRyXSBzaG91bGQgYmUgc3BlY2lmaWVkIGF0IGxlYXN0IHNvbWV3aGVyZS4gJzpub3QoW2Rpcj1ydGxdJyBub3QgYXBwbGljYWJsZSBoZXJlLFxuYmVjYXVzZSBpdCdzIHNhdGlzZnkgYW55IHBhcmVudCwgdGhhdCBkb24ndCBoYXZlIFtkaXI9cnRsXSBhdHRyaWJ1dGUuXG5QcmV2aW91cyBhcHByb2FjaCB3YXMgdG8gdXNlIHNpbmdsZSBydGwgbWl4aW4gYW5kIHJlc2V0IGx0ciBwcm9wZXJ0aWVzIHRvIGluaXRpYWwgdmFsdWUuXG5CdXQgc29tZXRpbWVzIGl0J3MgaGFyZCB0byBmaW5kLCB3aGF0IHRoZSBwcmV2aW91cyB2YWx1ZSBzaG91bGQgYmUuIEFuZCBzdWNoIG1peGluIGNhbGwgbG9va3MgdG9vIHZlcmJvc2UuXG4qL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuLyoqXG4gKiBUaGlzIG1peGluIGdlbmVyYXRlcyBrZXlmYW1lcy5cbiAqIEJlY2F1c2Ugb2YgYWxsIGtleWZyYW1lcyBjYW4ndCBiZSBzY29wZWQsXG4gKiB3ZSBuZWVkIHRvIHB1dHMgdW5pcXVlIG5hbWUgaW4gZWFjaCBidG4tcHVsc2UgY2FsbC5cbiAqL1xuLypcblxuQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIChodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXNjb3BpbmctMS8jaG9zdC1zZWxlY3Rvcilcbjpob3N0IGFuZCA6aG9zdC1jb250ZXh0IGFyZSBwc2V1ZG8tY2xhc3Nlcy4gU28gd2UgYXNzdW1lIHRoZXkgY291bGQgYmUgY29tYmluZWQsXG5saWtlIG90aGVyIHBzZXVkby1jbGFzc2VzLCBldmVuIHNhbWUgb25lcy5cbkZvciBleGFtcGxlOiAnOm50aC1vZi10eXBlKDJuKTpudGgtb2YtdHlwZShldmVuKScuXG5cbklkZWFsIHNvbHV0aW9uIHdvdWxkIGJlIHRvIHByZXBlbmQgYW55IHNlbGVjdG9yIHdpdGggOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pLlxuVGhlbiBuZWJ1bGFyIGNvbXBvbmVudHMgd2lsbCBiZWhhdmUgYXMgYW4gaHRtbCBlbGVtZW50IGFuZCByZXNwb25kIHRvIFtkaXJdIGF0dHJpYnV0ZSBvbiBhbnkgbGV2ZWwsXG5zbyBkaXJlY3Rpb24gY291bGQgYmUgb3ZlcnJpZGRlbiBvbiBhbnkgY29tcG9uZW50IGxldmVsLlxuXG5JbXBsZW1lbnRhdGlvbiBjb2RlOlxuXG5AbWl4aW4gbmItcnRsKCkge1xuICAvLyBhZGQgIyB0byBzY3NzIGludGVycG9sYXRpb24gc3RhdGVtZW50LlxuICAvLyBpdCB3b3JrcyBpbiBjb21tZW50cyBhbmQgd2UgY2FuJ3QgdXNlIGl0IGhlcmVcbiAgQGF0LXJvb3Qge3NlbGVjdG9yLWFwcGVuZCgnOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pJywgJil9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5BbmQgd2hlbiB3ZSBjYWxsIGl0IHNvbWV3aGVyZTpcblxuOmhvc3Qge1xuICAuc29tZS1jbGFzcyB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkge1xuICAgICAgLi4uXG4gICAgfVxuICB9XG59XG46aG9zdC1jb250ZXh0KC4uLikge1xuICAuc29tZS1jbGFzcyB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkge1xuICAgICAgLi4uXG4gICAgfVxuICB9XG59XG5cblJlc3VsdCB3aWxsIGxvb2sgbGlrZTpcblxuOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pOmhvc3QgLnNvbWUtY2xhc3Mge1xuICAuLi5cbn1cbjpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0LWNvbnRleHQoLi4uKSAuc29tZS1jbGFzcyB7XG4gIC4uLlxufVxuXG4qXG4gIFNpZGUgbm90ZTpcbiAgOmhvc3QtY29udGV4dCgpOmhvc3Qgc2VsZWN0b3IgYXJlIHZhbGlkLiBodHRwczovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LXN0eWxlLzIwMTVGZWIvMDMwNS5odG1sXG5cbiAgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pOmhvc3QtY29udGV4dCguLi4pIHNob3VsZCBtYXRjaCBhbnkgcGVybXV0YXRpb24sXG4gIHNvIG9yZGVyIGlzIG5vdCBpbXBvcnRhbnQuXG4qXG5cblxuQ3VycmVudGx5LCB0aGVyZSdyZSB0d28gcHJvYmxlbXMgd2l0aCB0aGlzIGFwcHJvYWNoOlxuXG5GaXJzdCwgaXMgdGhhdCB3ZSBjYW4ndCBjb21iaW5lIDpob3N0LCA6aG9zdC1jb250ZXh0LiBBbmd1bGFyIGJ1Z3MgIzE0MzQ5LCAjMTkxOTkuXG5Gb3IgdGhlIG1vbWVudCBvZiB3cml0aW5nLCB0aGUgb25seSBwb3NzaWJsZSB3YXkgaXM6XG46aG9zdCB7XG4gIDpob3N0LWNvbnRleHQoLi4uKSB7XG4gICAgLi4uXG4gIH1cbn1cbkl0IGRvZXNuJ3Qgd29yayBmb3IgdXMgYmVjYXVzZSBtaXhpbiBjb3VsZCBiZSBjYWxsZWQgc29tZXdoZXJlIGRlZXBlciwgbGlrZTpcbjpob3N0IHtcbiAgcCB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkgeyAuLi4gfVxuICB9XG59XG5XZSBhcmUgbm90IGFibGUgdG8gZ28gdXAgdG8gOmhvc3QgbGV2ZWwgdG8gcGxhY2UgY29udGVudCBwYXNzZWQgdG8gbWl4aW4uXG5cblRoZSBzZWNvbmQgcHJvYmxlbSBpcyB0aGF0IHdlIG9ubHkgY2FuIGJlIHN1cmUgdGhhdCB3ZSBhcHBlbmRpbmcgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHRvIGFub3RoZXJcbjpob3N0Lzpob3N0LWNvbnRleHQgcHNldWRvLWNsYXNzIHdoZW4gY2FsbGVkIGluIHRoZW1lIGZpbGVzICgqLnRoZW1lLnNjc3MpLlxuICAqXG4gICAgU2lkZSBub3RlOlxuICAgIEN1cnJlbnRseSwgbmItaW5zdGFsbC1jb21wb25lbnQgdXNlcyBhbm90aGVyIGFwcHJvYWNoIHdoZXJlIDpob3N0IHByZXBlbmRlZCB3aXRoIHRoZSB0aGVtZSBuYW1lXG4gICAgKGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi81Yjk2MDc4NjI0YjBhNDc2MGYyZGJjZjZmZGYwYmQ2Mjc5MWJlNWJiL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy9zaGFkb3dfY3NzLnRzI0w0NDEpLFxuICAgIGJ1dCBpdCB3YXMgbWFkZSB0byBiZSBhYmxlIHRvIHVzZSBjdXJyZW50IHJlYWxpemF0aW9uIG9mIHJ0bCBhbmQgaXQgY2FuIGJlIHJld3JpdHRlbiBiYWNrIHRvXG4gICAgOmhvc3QtY29udGV4dCgkdGhlbWUpIG9uY2Ugd2Ugd2lsbCBiZSBhYmxlIHRvIHVzZSBtdWx0aXBsZSBzaGFkb3cgc2VsZWN0b3JzLlxuICAqXG5CdXQgd2hlbiBpdCdzIGNhbGxlZCBpbiAqLmNvbXBvbmVudC5zY3NzIHdlIGNhbid0IGJlIHN1cmUsIHRoYXQgc2VsZWN0b3Igc3RhcnRzIHdpdGggOmhvc3QvOmhvc3QtY29udGV4dCxcbmJlY2F1c2UgYW5ndWxhciBhbGxvd3Mgb21pdHRpbmcgcHNldWRvLWNsYXNzZXMgaWYgd2UgZG9uJ3QgbmVlZCB0byBzdHlsZSA6aG9zdCBjb21wb25lbnQgaXRzZWxmLlxuV2UgY2FuIGJyZWFrIHN1Y2ggc2VsZWN0b3JzLCBieSBqdXN0IGFwcGVuZGluZyA6aG9zdC1jb250ZXh0KFtkaXI9cnRsXSkgdG8gdGhlbS5cbiAgKioqXG4gICAgUG9zc2libGUgc29sdXRpb25cbiAgICBjaGVjayBpZiB3ZSBpbiB0aGVtZSBieSBzb21lIHRoZW1lIHZhcmlhYmxlcyBhbmQgaWYgc28gYXBwZW5kLCBvdGhlcndpc2UgbmVzdCBsaWtlXG4gICAgQGF0LXJvb3QgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHtcbiAgICAgIC8vIGFkZCAjIHRvIHNjc3MgaW50ZXJwb2xhdGlvbiBzdGF0ZW1lbnQuXG4gICAgICAvLyBpdCB3b3JrcyBpbiBjb21tZW50cyBhbmQgd2UgY2FuJ3QgdXNlIGl0IGhlcmVcbiAgICAgIHsmfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBXaGF0IGlmIDpob3N0IHNwZWNpZmllZD8gQ2FuIHdlIGFkZCBzcGFjZSBpbiA6aG9zdC1jb250ZXh0KC4uLikgOmhvc3Q/XG4gICAgT3IgbWF5YmUgYWRkIDpob3N0IHNlbGVjdG9yIGFueXdheT8gSWYgbXVsdGlwbGUgOmhvc3Qgc2VsZWN0b3JzIGFyZSBhbGxvd2VkXG4gICoqKlxuXG5cblByb2JsZW1zIHdpdGggdGhlIGN1cnJlbnQgYXBwcm9hY2guXG5cbjEuIERpcmVjdGlvbiBjYW4gYmUgYXBwbGllZCBvbmx5IG9uIGRvY3VtZW50IGxldmVsLCBiZWNhdXNlIG1peGluIHByZXBlbmRzIHRoZW1lIGNsYXNzLFxud2hpY2ggcGxhY2VkIG9uIHRoZSBib2R5LlxuMi4gKi5jb21wb25lbnQuc2NzcyBzdHlsZXMgc2hvdWxkIGJlIGluIDpob3N0IHNlbGVjdG9yLiBPdGhlcndpc2UgYW5ndWxhciB3aWxsIGFkZCBob3N0XG5hdHRyaWJ1dGUgdG8gW2Rpcj1ydGxdIGF0dHJpYnV0ZSBhcyB3ZWxsLlxuXG5cbkdlbmVyYWwgcHJvYmxlbXMuXG5cbkx0ciBpcyBkZWZhdWx0IGRvY3VtZW50IGRpcmVjdGlvbiwgYnV0IGZvciBwcm9wZXIgd29yayBvZiBuYi1sdHIgKG1lYW5zIGx0ciBvbmx5KSxcbltkaXI9bHRyXSBzaG91bGQgYmUgc3BlY2lmaWVkIGF0IGxlYXN0IHNvbWV3aGVyZS4gJzpub3QoW2Rpcj1ydGxdJyBub3QgYXBwbGljYWJsZSBoZXJlLFxuYmVjYXVzZSBpdCdzIHNhdGlzZnkgYW55IHBhcmVudCwgdGhhdCBkb24ndCBoYXZlIFtkaXI9cnRsXSBhdHRyaWJ1dGUuXG5QcmV2aW91cyBhcHByb2FjaCB3YXMgdG8gdXNlIHNpbmdsZSBydGwgbWl4aW4gYW5kIHJlc2V0IGx0ciBwcm9wZXJ0aWVzIHRvIGluaXRpYWwgdmFsdWUuXG5CdXQgc29tZXRpbWVzIGl0J3MgaGFyZCB0byBmaW5kLCB3aGF0IHRoZSBwcmV2aW91cyB2YWx1ZSBzaG91bGQgYmUuIEFuZCBzdWNoIG1peGluIGNhbGwgbG9va3MgdG9vIHZlcmJvc2UuXG4qL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuLyoqXG4gKiBUaGlzIG1peGluIGdlbmVyYXRlcyBrZXlmYW1lcy5cbiAqIEJlY2F1c2Ugb2YgYWxsIGtleWZyYW1lcyBjYW4ndCBiZSBzY29wZWQsXG4gKiB3ZSBuZWVkIHRvIHB1dHMgdW5pcXVlIG5hbWUgaW4gZWFjaCBidG4tcHVsc2UgY2FsbC5cbiAqL1xuLypcblxuQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIChodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXNjb3BpbmctMS8jaG9zdC1zZWxlY3Rvcilcbjpob3N0IGFuZCA6aG9zdC1jb250ZXh0IGFyZSBwc2V1ZG8tY2xhc3Nlcy4gU28gd2UgYXNzdW1lIHRoZXkgY291bGQgYmUgY29tYmluZWQsXG5saWtlIG90aGVyIHBzZXVkby1jbGFzc2VzLCBldmVuIHNhbWUgb25lcy5cbkZvciBleGFtcGxlOiAnOm50aC1vZi10eXBlKDJuKTpudGgtb2YtdHlwZShldmVuKScuXG5cbklkZWFsIHNvbHV0aW9uIHdvdWxkIGJlIHRvIHByZXBlbmQgYW55IHNlbGVjdG9yIHdpdGggOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pLlxuVGhlbiBuZWJ1bGFyIGNvbXBvbmVudHMgd2lsbCBiZWhhdmUgYXMgYW4gaHRtbCBlbGVtZW50IGFuZCByZXNwb25kIHRvIFtkaXJdIGF0dHJpYnV0ZSBvbiBhbnkgbGV2ZWwsXG5zbyBkaXJlY3Rpb24gY291bGQgYmUgb3ZlcnJpZGRlbiBvbiBhbnkgY29tcG9uZW50IGxldmVsLlxuXG5JbXBsZW1lbnRhdGlvbiBjb2RlOlxuXG5AbWl4aW4gbmItcnRsKCkge1xuICAvLyBhZGQgIyB0byBzY3NzIGludGVycG9sYXRpb24gc3RhdGVtZW50LlxuICAvLyBpdCB3b3JrcyBpbiBjb21tZW50cyBhbmQgd2UgY2FuJ3QgdXNlIGl0IGhlcmVcbiAgQGF0LXJvb3Qge3NlbGVjdG9yLWFwcGVuZCgnOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pJywgJil9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5BbmQgd2hlbiB3ZSBjYWxsIGl0IHNvbWV3aGVyZTpcblxuOmhvc3Qge1xuICAuc29tZS1jbGFzcyB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkge1xuICAgICAgLi4uXG4gICAgfVxuICB9XG59XG46aG9zdC1jb250ZXh0KC4uLikge1xuICAuc29tZS1jbGFzcyB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkge1xuICAgICAgLi4uXG4gICAgfVxuICB9XG59XG5cblJlc3VsdCB3aWxsIGxvb2sgbGlrZTpcblxuOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pOmhvc3QgLnNvbWUtY2xhc3Mge1xuICAuLi5cbn1cbjpob3N0LWNvbnRleHQoW2Rpcj1ydGxdKTpob3N0LWNvbnRleHQoLi4uKSAuc29tZS1jbGFzcyB7XG4gIC4uLlxufVxuXG4qXG4gIFNpZGUgbm90ZTpcbiAgOmhvc3QtY29udGV4dCgpOmhvc3Qgc2VsZWN0b3IgYXJlIHZhbGlkLiBodHRwczovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LXN0eWxlLzIwMTVGZWIvMDMwNS5odG1sXG5cbiAgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pOmhvc3QtY29udGV4dCguLi4pIHNob3VsZCBtYXRjaCBhbnkgcGVybXV0YXRpb24sXG4gIHNvIG9yZGVyIGlzIG5vdCBpbXBvcnRhbnQuXG4qXG5cblxuQ3VycmVudGx5LCB0aGVyZSdyZSB0d28gcHJvYmxlbXMgd2l0aCB0aGlzIGFwcHJvYWNoOlxuXG5GaXJzdCwgaXMgdGhhdCB3ZSBjYW4ndCBjb21iaW5lIDpob3N0LCA6aG9zdC1jb250ZXh0LiBBbmd1bGFyIGJ1Z3MgIzE0MzQ5LCAjMTkxOTkuXG5Gb3IgdGhlIG1vbWVudCBvZiB3cml0aW5nLCB0aGUgb25seSBwb3NzaWJsZSB3YXkgaXM6XG46aG9zdCB7XG4gIDpob3N0LWNvbnRleHQoLi4uKSB7XG4gICAgLi4uXG4gIH1cbn1cbkl0IGRvZXNuJ3Qgd29yayBmb3IgdXMgYmVjYXVzZSBtaXhpbiBjb3VsZCBiZSBjYWxsZWQgc29tZXdoZXJlIGRlZXBlciwgbGlrZTpcbjpob3N0IHtcbiAgcCB7XG4gICAgQGluY2x1ZGUgbmItcnRsKCkgeyAuLi4gfVxuICB9XG59XG5XZSBhcmUgbm90IGFibGUgdG8gZ28gdXAgdG8gOmhvc3QgbGV2ZWwgdG8gcGxhY2UgY29udGVudCBwYXNzZWQgdG8gbWl4aW4uXG5cblRoZSBzZWNvbmQgcHJvYmxlbSBpcyB0aGF0IHdlIG9ubHkgY2FuIGJlIHN1cmUgdGhhdCB3ZSBhcHBlbmRpbmcgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHRvIGFub3RoZXJcbjpob3N0Lzpob3N0LWNvbnRleHQgcHNldWRvLWNsYXNzIHdoZW4gY2FsbGVkIGluIHRoZW1lIGZpbGVzICgqLnRoZW1lLnNjc3MpLlxuICAqXG4gICAgU2lkZSBub3RlOlxuICAgIEN1cnJlbnRseSwgbmItaW5zdGFsbC1jb21wb25lbnQgdXNlcyBhbm90aGVyIGFwcHJvYWNoIHdoZXJlIDpob3N0IHByZXBlbmRlZCB3aXRoIHRoZSB0aGVtZSBuYW1lXG4gICAgKGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi81Yjk2MDc4NjI0YjBhNDc2MGYyZGJjZjZmZGYwYmQ2Mjc5MWJlNWJiL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy9zaGFkb3dfY3NzLnRzI0w0NDEpLFxuICAgIGJ1dCBpdCB3YXMgbWFkZSB0byBiZSBhYmxlIHRvIHVzZSBjdXJyZW50IHJlYWxpemF0aW9uIG9mIHJ0bCBhbmQgaXQgY2FuIGJlIHJld3JpdHRlbiBiYWNrIHRvXG4gICAgOmhvc3QtY29udGV4dCgkdGhlbWUpIG9uY2Ugd2Ugd2lsbCBiZSBhYmxlIHRvIHVzZSBtdWx0aXBsZSBzaGFkb3cgc2VsZWN0b3JzLlxuICAqXG5CdXQgd2hlbiBpdCdzIGNhbGxlZCBpbiAqLmNvbXBvbmVudC5zY3NzIHdlIGNhbid0IGJlIHN1cmUsIHRoYXQgc2VsZWN0b3Igc3RhcnRzIHdpdGggOmhvc3QvOmhvc3QtY29udGV4dCxcbmJlY2F1c2UgYW5ndWxhciBhbGxvd3Mgb21pdHRpbmcgcHNldWRvLWNsYXNzZXMgaWYgd2UgZG9uJ3QgbmVlZCB0byBzdHlsZSA6aG9zdCBjb21wb25lbnQgaXRzZWxmLlxuV2UgY2FuIGJyZWFrIHN1Y2ggc2VsZWN0b3JzLCBieSBqdXN0IGFwcGVuZGluZyA6aG9zdC1jb250ZXh0KFtkaXI9cnRsXSkgdG8gdGhlbS5cbiAgKioqXG4gICAgUG9zc2libGUgc29sdXRpb25cbiAgICBjaGVjayBpZiB3ZSBpbiB0aGVtZSBieSBzb21lIHRoZW1lIHZhcmlhYmxlcyBhbmQgaWYgc28gYXBwZW5kLCBvdGhlcndpc2UgbmVzdCBsaWtlXG4gICAgQGF0LXJvb3QgOmhvc3QtY29udGV4dChbZGlyPXJ0bF0pIHtcbiAgICAgIC8vIGFkZCAjIHRvIHNjc3MgaW50ZXJwb2xhdGlvbiBzdGF0ZW1lbnQuXG4gICAgICAvLyBpdCB3b3JrcyBpbiBjb21tZW50cyBhbmQgd2UgY2FuJ3QgdXNlIGl0IGhlcmVcbiAgICAgIHsmfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBXaGF0IGlmIDpob3N0IHNwZWNpZmllZD8gQ2FuIHdlIGFkZCBzcGFjZSBpbiA6aG9zdC1jb250ZXh0KC4uLikgOmhvc3Q/XG4gICAgT3IgbWF5YmUgYWRkIDpob3N0IHNlbGVjdG9yIGFueXdheT8gSWYgbXVsdGlwbGUgOmhvc3Qgc2VsZWN0b3JzIGFyZSBhbGxvd2VkXG4gICoqKlxuXG5cblByb2JsZW1zIHdpdGggdGhlIGN1cnJlbnQgYXBwcm9hY2guXG5cbjEuIERpcmVjdGlvbiBjYW4gYmUgYXBwbGllZCBvbmx5IG9uIGRvY3VtZW50IGxldmVsLCBiZWNhdXNlIG1peGluIHByZXBlbmRzIHRoZW1lIGNsYXNzLFxud2hpY2ggcGxhY2VkIG9uIHRoZSBib2R5LlxuMi4gKi5jb21wb25lbnQuc2NzcyBzdHlsZXMgc2hvdWxkIGJlIGluIDpob3N0IHNlbGVjdG9yLiBPdGhlcndpc2UgYW5ndWxhciB3aWxsIGFkZCBob3N0XG5hdHRyaWJ1dGUgdG8gW2Rpcj1ydGxdIGF0dHJpYnV0ZSBhcyB3ZWxsLlxuXG5cbkdlbmVyYWwgcHJvYmxlbXMuXG5cbkx0ciBpcyBkZWZhdWx0IGRvY3VtZW50IGRpcmVjdGlvbiwgYnV0IGZvciBwcm9wZXIgd29yayBvZiBuYi1sdHIgKG1lYW5zIGx0ciBvbmx5KSxcbltkaXI9bHRyXSBzaG91bGQgYmUgc3BlY2lmaWVkIGF0IGxlYXN0IHNvbWV3aGVyZS4gJzpub3QoW2Rpcj1ydGxdJyBub3QgYXBwbGljYWJsZSBoZXJlLFxuYmVjYXVzZSBpdCdzIHNhdGlzZnkgYW55IHBhcmVudCwgdGhhdCBkb24ndCBoYXZlIFtkaXI9cnRsXSBhdHRyaWJ1dGUuXG5QcmV2aW91cyBhcHByb2FjaCB3YXMgdG8gdXNlIHNpbmdsZSBydGwgbWl4aW4gYW5kIHJlc2V0IGx0ciBwcm9wZXJ0aWVzIHRvIGluaXRpYWwgdmFsdWUuXG5CdXQgc29tZXRpbWVzIGl0J3MgaGFyZCB0byBmaW5kLCB3aGF0IHRoZSBwcmV2aW91cyB2YWx1ZSBzaG91bGQgYmUuIEFuZCBzdWNoIG1peGluIGNhbGwgbG9va3MgdG9vIHZlcmJvc2UuXG4qL1xuLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuLypcbiAgICAgIDpob3N0IGNhbiBiZSBwcmVmaXhlZFxuICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9ibG9iLzhkMGVlMzQ5MzlmMTRjMDc4NzZkMjIyYzI1YjQwNWVkNDU4YTM0ZDMvcGFja2FnZXMvY29tcGlsZXIvc3JjL3NoYWRvd19jc3MudHMjTDQ0MVxuXG4gICAgICBXZSBoYXZlIHRvIHVzZSA6aG9zdCBpbnN0ZWQgb2YgOmhvc3QtY29udGV4dCgkdGhlbWUpLCB0byBiZSBhYmxlIHRvIHByZWZpeCB0aGVtZSBjbGFzc1xuICAgICAgd2l0aCBzb21ldGhpbmcgZGVmaW5lZCBpbnNpZGUgb2YgQGNvbnRlbnQsIGJ5IHByZWZpeGluZyAmLlxuICAgICAgRm9yIGV4YW1wbGUgdGhpcyBzY3NzIGNvZGU6XG4gICAgICAgIC5uYi10aGVtZS1kZWZhdWx0IHtcbiAgICAgICAgICAuc29tZS1zZWxlY3RvciAmIHtcbiAgICAgICAgICAgIC4uLlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgV2lsbCByZXN1bHQgaW4gbmV4dCBjc3M6XG4gICAgICAgIC5zb21lLXNlbGVjdG9yIC5uYi10aGVtZS1kZWZhdWx0IHtcbiAgICAgICAgICAuLi5cbiAgICAgICAgfVxuXG4gICAgICBJdCBkb2Vzbid0IHdvcmsgd2l0aCA6aG9zdC1jb250ZXh0IGJlY2F1c2UgYW5ndWxhciBzcGxpdHRpbmcgaXQgaW4gdHdvIHNlbGVjdG9ycyBhbmQgcmVtb3Zlc1xuICAgICAgcHJlZml4IGluIG9uZSBvZiB0aGUgc2VsZWN0b3JzLlxuICAgICovXG4ubmItdGhlbWUtY29ycG9yYXRlIDpob3N0IG5iLWxheW91dC1jb2x1bW4uc21hbGwge1xuICBmbGV4OiAwLjE1ICFpbXBvcnRhbnQ7IH1cblxuLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCBuYi1zaWRlYmFyLnNldHRpbmdzLXNpZGViYXIge1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGVhc2U7XG4gIHdpZHRoOiA3LjVyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCBuYi1zaWRlYmFyLnNldHRpbmdzLXNpZGViYXIuY29sbGFwc2VkIHtcbiAgICB3aWR0aDogMDsgfVxuICAgIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgbmItc2lkZWJhci5zZXR0aW5ncy1zaWRlYmFyLmNvbGxhcHNlZCAvZGVlcC8gLm1haW4tY29udGFpbmVyIHtcbiAgICAgIHdpZHRoOiAwOyB9XG4gICAgICAubmItdGhlbWUtY29ycG9yYXRlIDpob3N0IG5iLXNpZGViYXIuc2V0dGluZ3Mtc2lkZWJhci5jb2xsYXBzZWQgL2RlZXAvIC5tYWluLWNvbnRhaW5lciAuc2Nyb2xsYWJsZSB7XG4gICAgICAgIHdpZHRoOiA3LjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW07IH1cbiAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCBuYi1zaWRlYmFyLnNldHRpbmdzLXNpZGViYXIgL2RlZXAvIC5tYWluLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDcuNXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgZWFzZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCBuYi1zaWRlYmFyLnNldHRpbmdzLXNpZGViYXIgL2RlZXAvIC5tYWluLWNvbnRhaW5lciAuc2Nyb2xsYWJsZSB7XG4gICAgICB3aWR0aDogNy41cmVtOyB9XG5cbi5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgbmItc2lkZWJhci5tZW51LXNpZGViYXIge1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBtYXJnaW4tdG9wOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAubmItdGhlbWUtY29ycG9yYXRlIDpob3N0IG5iLXNpZGViYXIubWVudS1zaWRlYmFyIC9kZWVwLyAubWFpbi1jb250YWluZXIge1xuICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDQuNzVyZW0gLSAycmVtKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjZGQ1ZGM7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNC43NXJlbSkgIWltcG9ydGFudDsgfVxuICAgIFtkaXI9bHRyXSAubmItdGhlbWUtY29ycG9yYXRlIDpob3N0IG5iLXNpZGViYXIubWVudS1zaWRlYmFyIC9kZWVwLyAubWFpbi1jb250YWluZXIge1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuMTdyZW07IH1cbiAgICBbZGlyPXJ0bF0gLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCBuYi1zaWRlYmFyLm1lbnUtc2lkZWJhciAvZGVlcC8gLm1haW4tY29udGFpbmVyIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuMTdyZW07IH1cbiAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCBuYi1zaWRlYmFyLm1lbnUtc2lkZWJhciAvZGVlcC8gLnNjcm9sbGFibGUge1xuICAgIHBhZGRpbmctdG9wOiAwOyB9XG4gICAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCBuYi1zaWRlYmFyLm1lbnUtc2lkZWJhciAvZGVlcC8gLnNjcm9sbGFibGUgLm1lbnUtaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wOiBub25lOyB9XG4gICAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCBuYi1zaWRlYmFyLm1lbnUtc2lkZWJhciAvZGVlcC8gLnNjcm9sbGFibGUgLm1lbnUtaXRlbSA6aG92ZXIge1xuICAgICAgY29sb3I6IGJsdWU7IH1cbiAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCBuYi1zaWRlYmFyLm1lbnUtc2lkZWJhciAvZGVlcC8gbmItc2lkZWJhci1oZWFkZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgbmItc2lkZWJhci5tZW51LXNpZGViYXIgLm1haW4tYnRuIHtcbiAgICBwYWRkaW5nOiAwLjc1cmVtIDIuNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAtMnJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0cmFuc2l0aW9uOiBwYWRkaW5nIDAuM3MgY3ViaWMtYmV6aWVyKDAuMTgsIDAuODksIDAuMzIsIDEuNDgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMTdyZW07IH1cbiAgICAubmItdGhlbWUtY29ycG9yYXRlIDpob3N0IG5iLXNpZGViYXIubWVudS1zaWRlYmFyIC5tYWluLWJ0biBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgIHRleHQtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG4gICAgW2Rpcj1sdHJdIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgbmItc2lkZWJhci5tZW51LXNpZGViYXIgLm1haW4tYnRuIHNwYW4ge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtOyB9XG4gICAgW2Rpcj1ydGxdIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgbmItc2lkZWJhci5tZW51LXNpZGViYXIgLm1haW4tYnRuIHNwYW4ge1xuICAgICAgcGFkZGluZy1yaWdodDogMC4yNXJlbTsgfVxuICAgIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgbmItc2lkZWJhci5tZW51LXNpZGViYXIgLm1haW4tYnRuIGksIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgbmItc2lkZWJhci5tZW51LXNpZGViYXIgLm1haW4tYnRuIHNwYW4ge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAubmItdGhlbWUtY29ycG9yYXRlIDpob3N0IG5iLXNpZGViYXIubWVudS1zaWRlYmFyLmNvbXBhY3RlZCAvZGVlcC8gbmItc2lkZWJhci1oZWFkZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgbmItc2lkZWJhci5tZW51LXNpZGViYXIuY29tcGFjdGVkIC5tYWluLWJ0biB7XG4gICAgd2lkdGg6IDQ2cHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIHBhZGRpbmc6IDAuMzc1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICB0cmFuc2l0aW9uOiBub25lOyB9XG4gICAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCBuYi1zaWRlYmFyLm1lbnUtc2lkZWJhci5jb21wYWN0ZWQgLm1haW4tYnRuIHNwYW4ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMzk5Ljk4cHgpIHtcbiAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCAubWFpbi1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwLjc1cmVtICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCBuYi1zaWRlYmFyLm1lbnUtc2lkZWJhciB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAgIC5uYi10aGVtZS1jb3Jwb3JhdGUgOmhvc3QgbmItc2lkZWJhci5tZW51LXNpZGViYXIgL2RlZXAvIC5tYWluLWNvbnRhaW5lciB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA0Ljc1cmVtKSAhaW1wb3J0YW50OyB9XG4gICAgICBbZGlyPWx0cl0gLm5iLXRoZW1lLWNvcnBvcmF0ZSA6aG9zdCBuYi1zaWRlYmFyLm1lbnUtc2lkZWJhciAvZGVlcC8gLm1haW4tY29udGFpbmVyIHtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7IH1cbiAgICAgIFtkaXI9cnRsXSAubmItdGhlbWUtY29ycG9yYXRlIDpob3N0IG5iLXNpZGViYXIubWVudS1zaWRlYmFyIC9kZWVwLyAubWFpbi1jb250YWluZXIge1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwOyB9XG4gICAgICAubmItdGhlbWUtY29ycG9yYXRlIDpob3N0IG5iLXNpZGViYXIubWVudS1zaWRlYmFyIC9kZWVwLyAubWFpbi1jb250YWluZXIgLnNjcm9sbGFibGUge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDsgfVxuICAubmItdGhlbWUtY29ycG9yYXRlIDpob3N0IC5tYWluLWJ0biB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG4iXX0= */\"","import { Component, OnDestroy, Input } from '@angular/core';\nimport { NbThemeService } from '@nebular/theme';\nimport { takeWhile } from 'rxjs/operators';\nimport { MENU_ITEMS1 } from '../menu';\nimport { SharedService } from '../../../shared/service/shared.service'\nimport { Subscription } from 'rxjs';\nimport { UserMenu } from '../layoutModel';\nimport * as _ from \"lodash\";\n\n\n@Component({\n selector: 'ngx-one-column-layout',\n styleUrls: ['./one-column.layout.scss'],\n template: `\n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n `,\n})\nexport class OneColumnLayoutComponent implements OnDestroy {\n\n private alive = true;\n\n menu1 = MENU_ITEMS1; //mahesh\n menuFull = MENU_ITEMS1; //mahesh\n\n\n UserManager = new Subscription();\n menuFlag: number = 1;\n userType: string = '';\n cmpType: string = '';\n\n menuList: UserMenu[] = [];\n\n @Input() spinner: boolean;\n\n currentTheme: string;\n constructor(\n protected themeService: NbThemeService,\n private sService: SharedService\n ) {\n this.themeService.getJsTheme()\n .pipe(takeWhile(() => this.alive))\n .subscribe(theme => {\n this.currentTheme = theme.name;\n });\n\n this.userType = sService.gAAdmin();\n this.cmpType = sService.gGetCmpType();\n this.menuFlag = 1;\n }\n\n ngOnInit() {\n this.spinner = true;\n // this.SaveMenu();\n this.UserManager.add(this.sService.GetMenuList().subscribe((res) => {\n this.spinner = false;\n debugger;\n if (res == null) return;\n if (res['data'] != null) {\n this.menuList = res['data'];\n this.removeMenu();\n }\n }, (err) => {\n this.spinner = false;\n }));\n }\n\n removeMenu() {\n\n var i;\n var j;\n this.menu1 = _.cloneDeep(this.menuFull);\n //Hide Main menu which does not include cmpType either of [TR, TD]\n for (i = 0; i < this.menu1.length; i++) {\n if (!this.menu1[i].target.includes(this.cmpType)) {\n this.menu1[i].hidden = true;\n }\n else {\n if (this.menu1[i].children == undefined) continue;\n if (this.menu1[i].children != null) {\n //Hide Child Menu which does not include cmpType\n for (j = 0; j < this.menu1[i].children.length; j++) {\n if (!this.menu1[i].children[j].target.includes(this.cmpType)) {\n this.menu1[i].children[j].hidden = true;\n }\n }\n }\n }\n }\n\n //Add New Company 1005, hidden is false -i.e. it will show if login from Recursive\n if (this.userType == \"AAdmin\") {\n this.menu1[10].children[5].hidden = false;\n }\n else {\n this.menu1[10].children[5].hidden = true;\n }\n\n if (this.userType != \"Admin\" && this.userType != \"SAdmin\" && this.userType != \"AAdmin\") {\n for (i = 0; i < this.menu1[10].children.length; i++) {\n if (this.menu1[10].children[i].title == 'User Management') {\n //splice will remove elements from array and reindex the next array element\n //this.menu1[10].children.splice(i, 1);\n this.menu1[10].children[0].hidden = true;\n }\n }\n }\n\n for (i = 0; i < this.menuList.length; i++) {\n var mainMenu = 0;\n var subMenu = 0;\n var menuCode = this.menuList[i].MenuCode;\n var MenuCap = this.menuList[i].MenuCap;\n\n\n mainMenu = Number(this.menuList[i].MenuCode.substring(0, 2));\n\n if (this.menuList[i].MenuCode.length > 2) {\n subMenu = Number(this.menuList[i].MenuCode.substring(2, 4));\n\n if (this.menuList[i].MenuCap != 'User Management')\n //this.menu1[mainMenu - 1].children.splice(subMenu - 1, 1);\n this.menu1[mainMenu - 1].children[subMenu - 1].hidden = true;\n }\n else {\n //this.menu1.splice(mainMenu - 1, 1);\n this.menu1[mainMenu - 1].hidden = true;\n }\n }\n }\n SaveMenu() {\n this.UserManager.add(this.sService.SaveMenuDtl(this.menu1).subscribe((res) => {\n if (res != null) {\n // console.log(res);\n }\n }));\n }\n\n ngOnDestroy() {\n this.alive = false;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'ngxCapitalize' })\nexport class CapitalizePipe implements PipeTransform {\n\n transform(input: string): string {\n return input && input.length\n ? (input.charAt(0).toUpperCase() + input.slice(1).toLowerCase())\n : input;\n }\n}\n","/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { icons } from 'eva-icons';\n\n@Pipe({ name: 'eva' })\nexport class EvaIconsPipe implements PipeTransform {\n\n private defaultOptions = {\n height: 24,\n width: 24,\n fill: 'inherit',\n animationHover: true,\n animationInfinity: false,\n };\n\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(icon: string,\n options: {\n height: number;\n width: number;\n fill: string;\n animationType?: string;\n animationHover?: boolean;\n animationInfinity?: boolean;\n },\n ) {\n const mergedOptions = {\n ...this.defaultOptions,\n ...options,\n };\n const { width, height, fill, animationType, animationHover, animationInfinity } = mergedOptions;\n const animation = animationType ?\n { type: animationType, hover: animationHover, infinite: animationInfinity } :\n null;\n\n return this.sanitizer.bypassSecurityTrustHtml(icons[icon].toSvg({\n width,\n height,\n fill,\n animation,\n }));\n }\n}\n","export * from './capitalize.pipe';\nexport * from './plural.pipe';\nexport * from './round.pipe';\nexport * from './timing.pipe';\nexport * from './number-with-commas.pipe';\nexport * from './eva-icons.pipe';\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'ngxNumberWithCommas' })\nexport class NumberWithCommasPipe implements PipeTransform {\n\n transform(input: number): string {\n return new Intl.NumberFormat().format(input);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'ngxPlural' })\nexport class PluralPipe implements PipeTransform {\n\n transform(input: number, label: string, pluralLabel: string = ''): string {\n input = input || 0;\n return input === 1\n ? `${input} ${label}`\n : pluralLabel\n ? `${input} ${pluralLabel}`\n : `${input} ${label}s`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'ngxRound' })\nexport class RoundPipe implements PipeTransform {\n\n transform(input: number): number {\n return Math.round(input);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'timing' })\nexport class TimingPipe implements PipeTransform {\n transform(time: number): string {\n if (time) {\n const minutes = Math.floor(time / 60);\n const seconds = Math.floor(time % 60);\n return `${this.initZero(minutes)}${minutes}:${this.initZero(seconds)}${seconds}`;\n }\n\n return '00:00';\n }\n\n private initZero(time: number): string {\n return time < 10 ? '0' : '';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { delay, share } from 'rxjs/operators';\n\n@Injectable()\nexport class LayoutService {\n\n protected layoutSize$ = new Subject();\n\n changeLayoutSize() {\n this.layoutSize$.next();\n }\n\n onChangeLayoutSize(): Observable {\n return this.layoutSize$.pipe(\n share(),\n delay(1),\n );\n }\n}\n","\nimport { of as observableOf, Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\n\n\nlet counter = 0;\n\n@Injectable()\nexport class UserService {\n\n private users = {\n nick: { name: 'RecTrans', picture: 'assets/images/logogreen.png' },\n };\n\n private userArray: any[];\n\n constructor() {\n // this.userArray = Object.values(this.users);\n }\n\n getUsers(): Observable {\n return observableOf(this.users);\n }\n\n getUserArray(): Observable {\n return observableOf(this.userArray);\n }\n\n getUser(): Observable {\n counter = (counter + 1) % this.userArray.length;\n return observableOf(this.userArray[counter]);\n }\n}\n","export const CORPORATE_THEME = {\n name: 'corporate',\n base: 'default',\n variables: {\n temperature: [\n '#ffa36b',\n '#ffa36b',\n '#ff9e7a',\n '#ff9888',\n '#ff8ea0',\n ],\n\n solar: {\n gradientLeft: '#ff8ea0',\n gradientRight: '#ffa36b',\n shadowColor: 'rgba(0, 0, 0, 0)',\n radius: ['80%', '90%'],\n },\n\n traffic: {\n colorBlack: '#ffffff',\n tooltipBg: '#eef2f5',\n tooltipBorderColor: '#eef2f5',\n tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;',\n tooltipTextColor: '#2a2a2a',\n tooltipFontWeight: '400',\n\n lineBg: '#cae6f3',\n lineShadowBlur: '0',\n itemColor: '#bcc3cc',\n itemBorderColor: '#bcc3cc',\n itemEmphasisBorderColor: '#74a2ff',\n shadowLineDarkBg: 'rgba(0, 0, 0, 0)',\n shadowLineShadow: 'rgba(0, 0, 0, 0)',\n gradFrom: '#ffffff',\n gradTo: '#ffffff',\n },\n\n electricity: {\n tooltipBg: '#edf0f4',\n tooltipLineColor: '#bdc4cd',\n tooltipLineWidth: '0',\n tooltipBorderColor: '#ebeef2',\n tooltipExtraCss: 'border-radius: 10px; padding: 8px 24px;',\n tooltipTextColor: '#2a2a2a',\n tooltipFontWeight: 'bolder',\n\n axisLineColor: 'rgba(0, 0, 0, 0)',\n xAxisTextColor: '#2a2a2a',\n yAxisSplitLine: '#ebeef2',\n\n itemBorderColor: '#73a1ff',\n lineStyle: 'solid',\n lineWidth: '4',\n lineGradFrom: '#bdc4cd',\n lineGradTo: '#c0c8d1',\n lineShadow: 'rgba(0, 0, 0, 0)',\n\n areaGradFrom: 'rgba(255, 255, 255, 0)',\n areaGradTo: 'rgba(255, 255, 255, 0)',\n shadowLineDarkBg: 'rgba(255, 255, 255, 0)',\n },\n\n bubbleMap: {\n titleColor: '#484848',\n areaColor: '#dddddd',\n areaHoverColor: '#cccccc',\n areaBorderColor: '#ebeef2',\n },\n\n profitBarAnimationEchart: {\n textColor: '#b2bac2',\n\n firstAnimationBarColor: '#719efc',\n secondAnimationBarColor: '#5dcfe3',\n\n splitLineStyleOpacity: '0.06',\n splitLineStyleWidth: '1',\n splitLineStyleColor: '#000000',\n\n tooltipTextColor: '#2a2a2a',\n tooltipFontWeight: '400',\n tooltipFontSize: '16',\n tooltipBg: '#eef2f5',\n tooltipBorderColor: '#eef2f5',\n tooltipBorderWidth: '3',\n tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;',\n },\n\n trafficBarEchart: {\n gradientFrom: '#ff8ea0',\n gradientTo: '#ffa36b',\n shadow: 'rgba(0, 0, 0, 0)',\n shadowBlur: '0',\n\n axisTextColor: '#b2bac2',\n axisFontSize: '12',\n\n tooltipBg: '#edf0f4',\n tooltipBorderColor: '#ebeef2',\n tooltipExtraCss: 'border-radius: 10px; padding: 8px 24px;',\n tooltipTextColor: '#2a2a2a',\n tooltipFontWeight: 'bolder',\n },\n\n countryOrders: {\n countryBorderColor: 'rgba(255, 255, 255, 1)',\n countryFillColor: 'rgba(236, 242, 245, 1)',\n countryBorderWidth: '1',\n hoveredCountryBorderColor: 'rgba(113, 158, 252, 1)',\n hoveredCountryFillColor: 'rgba(199, 216, 247, 1)',\n hoveredCountryBorderWidth: '3',\n\n chartAxisLineColor: 'rgba(0, 0, 0, 0)',\n chartAxisTextColor: '#b2bac2',\n chartAxisFontSize: '16',\n chartGradientTo: 'rgba(113, 158, 252, 1)',\n chartGradientFrom: 'rgba(113, 158, 252, 1)',\n chartAxisSplitLine: '#ebeef2',\n chartShadowLineColor: '#2f296b',\n\n chartLineBottomShadowColor: 'rgba(113, 158, 252, 1)',\n\n chartInnerLineColor: '#eceff4',\n },\n\n echarts: {\n bg: '#ffffff',\n textColor: '#484848',\n axisLineColor: '#bbbbbb',\n splitLineColor: '#ebeef2',\n itemHoverShadowColor: 'rgba(0, 0, 0, 0.5)',\n tooltipBackgroundColor: '#6a7985',\n areaOpacity: '0.7',\n },\n\n chartjs: {\n axisLineColor: '#cccccc',\n textColor: '#484848',\n },\n\n orders: {\n tooltipBg: '#ffffff',\n tooltipLineColor: 'rgba(0, 0, 0, 0)',\n tooltipLineWidth: '0',\n tooltipBorderColor: '#ebeef2',\n tooltipExtraCss: 'border-radius: 10px; padding: 8px 24px;',\n tooltipTextColor: '#2a2a2a',\n tooltipFontWeight: 'bolder',\n tooltipFontSize: '20',\n\n axisLineColor: 'rgba(161, 161 ,229, 0.3)',\n axisFontSize: '16',\n axisTextColor: '#b2bac2',\n yAxisSplitLine: 'rgba(161, 161 ,229, 0.2)',\n\n itemBorderColor: '#73a1ff',\n lineStyle: 'solid',\n lineWidth: '4',\n\n // first line\n firstAreaGradFrom: 'rgba(227, 236, 254, 0.7)',\n firstAreaGradTo: 'rgba(227, 236, 254, 0.7)',\n firstShadowLineDarkBg: 'rgba(0, 0, 0, 0)',\n\n // second line\n secondLineGradFrom: 'rgba(93, 207, 227, 1)',\n secondLineGradTo: 'rgba(93, 207, 227, 1)',\n\n secondAreaGradFrom: 'rgba(0, 0, 0, 0)',\n secondAreaGradTo: 'rgba(0, 0, 0, 0)',\n secondShadowLineDarkBg: 'rgba(0, 0, 0, 0)',\n\n // third line\n thirdLineGradFrom: 'rgba(113, 158, 252, 1)',\n thirdLineGradTo: 'rgba(113, 158, 252, 1)',\n\n thirdAreaGradFrom: 'rgba(0, 0, 0, 0)',\n thirdAreaGradTo: 'rgba(0, 0, 0, 0)',\n thirdShadowLineDarkBg: 'rgba(0, 0, 0, 0)',\n },\n\n profit: {\n bg: '#ffffff',\n textColor: '#ffffff',\n axisLineColor: 'rgba(161, 161 ,229, 0.3)',\n splitLineColor: 'rgba(161, 161 ,229, 0.2)',\n areaOpacity: '1',\n\n axisFontSize: '16',\n axisTextColor: '#b2bac2',\n\n // first bar\n firstLineGradFrom: '#719efc',\n firstLineGradTo: '#719efc',\n firstLineShadow: 'rgba(14, 16, 48, 0.4)',\n\n // second bar\n secondLineGradFrom: '#5dcfe3',\n secondLineGradTo: '#5dcfe3',\n secondLineShadow: 'rgba(14, 16, 48, 0.4)',\n\n // third bar\n thirdLineGradFrom: '#e3ecfe',\n thirdLineGradTo: '#e3ecfe',\n thirdLineShadow: 'rgba(14, 16, 48, 0.4)',\n },\n\n orderProfitLegend: {\n firstItem: '#719efc',\n secondItem: '#5dcfe3',\n thirdItem: '#e3ecfe',\n },\n\n visitors: {\n tooltipBg: '#ffffff',\n tooltipLineColor: 'rgba(0, 0, 0, 0)',\n tooltipLineWidth: '0',\n tooltipBorderColor: '#ebeef2',\n tooltipExtraCss: 'border-radius: 10px; padding: 8px 24px;',\n tooltipTextColor: '#2a2a2a',\n tooltipFontWeight: 'bolder',\n tooltipFontSize: '20',\n\n axisLineColor: 'rgba(161, 161 ,229, 0.3)',\n axisFontSize: '16',\n axisTextColor: '#b2bac2',\n yAxisSplitLine: 'rgba(161, 161 ,229, 0.2)',\n\n itemBorderColor: '#73a1ff',\n lineStyle: 'dotted',\n lineWidth: '6',\n lineGradFrom: '#73a1ff',\n lineGradTo: '#73a1ff',\n lineShadow: 'rgba(0, 0, 0, 0)',\n\n areaGradFrom: 'rgba(146, 181, 252, 1)',\n areaGradTo: 'rgba(146, 181, 252, 1)',\n shadowLineDarkBg: '#a695ff',\n\n innerLineStyle: 'solid',\n innerLineWidth: '1',\n\n innerAreaGradFrom: 'rgba(227, 236, 254, 1)',\n innerAreaGradTo: 'rgba(227, 236, 254, 1)',\n },\n\n visitorsLegend: {\n firstIcon: '#e3ecfe',\n secondIcon: '#719efc',\n },\n\n visitorsPie: {\n firstPieGradientLeft: '#94e2ed',\n firstPieGradientRight: '#94e2ed',\n firstPieShadowColor: 'rgba(0, 0, 0, 0)',\n firstPieRadius: ['65%', '90%'],\n\n secondPieGradientLeft: '#719efc',\n secondPieGradientRight: '#719efc',\n secondPieShadowColor: '#b2cafb',\n secondPieRadius: ['63%', '92%'],\n shadowOffsetX: '-4',\n shadowOffsetY: '-4',\n },\n\n visitorsPieLegend: {\n firstSection: '#719efc',\n secondSection: '#99e5ee',\n },\n\n earningPie: {\n radius: ['65%', '100%'],\n center: ['50%', '50%'],\n\n fontSize: '22',\n\n firstPieGradientLeft: '#719efc',\n firstPieGradientRight: '#719efc',\n firstPieShadowColor: 'rgba(0, 0, 0, 0)',\n\n secondPieGradientLeft: '#ff9f6f',\n secondPieGradientRight: '#ff9f6f',\n secondPieShadowColor: 'rgba(0, 0, 0, 0)',\n\n thirdPieGradientLeft: '#ff5e83',\n thirdPieGradientRight: '#ff5e83',\n thirdPieShadowColor: 'rgba(0, 0, 0, 0)',\n },\n\n earningLine: {\n gradFrom: '#e3ecfe',\n gradTo: '#e3ecfe',\n\n tooltipTextColor: '#2a2a2a',\n tooltipFontWeight: '400',\n tooltipFontSize: '16',\n tooltipBg: '#eef2f5',\n tooltipBorderColor: '#eef2f5',\n tooltipBorderWidth: '3',\n tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;',\n },\n },\n};\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\nimport {\n NbActionsModule,\n NbCardModule,\n NbLayoutModule,\n NbMenuModule,\n NbRouteTabsetModule,\n NbSearchModule,\n NbSidebarModule,\n NbTabsetModule,\n NbThemeModule,\n NbUserModule,\n NbCheckboxModule,\n NbPopoverModule,\n NbContextMenuModule,\n NbProgressBarModule,\n NbCalendarModule,\n NbCalendarRangeModule,\n NbStepperModule,\n NbButtonModule,\n NbInputModule,\n NbAccordionModule,\n NbDatepickerModule,\n NbDialogModule,\n NbWindowModule,\n NbListModule,\n NbToastrModule,\n NbAlertModule,\n NbSpinnerModule,\n NbRadioModule,\n NbSelectModule,\n NbChatModule,\n NbTooltipModule,\n NbCalendarKitModule,\n} from '@nebular/theme';\n\nimport {\n FooterComponent,\n HeaderComponent,\n} from './components';\nimport {\n CapitalizePipe,\n PluralPipe,\n RoundPipe,\n TimingPipe,\n NumberWithCommasPipe,\n EvaIconsPipe,\n} from './pipes';\nimport {\n OneColumnLayoutComponent,\n} from './layouts';\nimport { CORPORATE_THEME } from './styles/theme.corporate';\nimport { LayoutService } from './services/layout.service';\nimport { UserService } from './services/users.service';\nimport { AuthLayoutComponent } from './components/auth-layout/auth-layout.component';\nimport { RouterModule } from '@angular/router';\n\nconst BASE_MODULES = [CommonModule, FormsModule, ReactiveFormsModule, RouterModule];\n\nconst NB_MODULES = [\n NbCardModule,\n NbLayoutModule,\n NbTabsetModule,\n NbRouteTabsetModule,\n NbMenuModule,\n NbUserModule,\n NbActionsModule,\n NbSearchModule,\n NbSidebarModule,\n NbCheckboxModule,\n NbPopoverModule,\n NbContextMenuModule,\n NgbModule,\n NbProgressBarModule,\n NbCalendarModule,\n NbCalendarRangeModule,\n NbStepperModule,\n NbButtonModule,\n NbListModule,\n NbToastrModule,\n NbInputModule,\n NbAccordionModule,\n NbDatepickerModule,\n NbDialogModule,\n NbWindowModule,\n NbAlertModule,\n NbSpinnerModule,\n NbRadioModule,\n NbSelectModule,\n NbChatModule,\n NbTooltipModule,\n NbCalendarKitModule,\n];\n\nconst COMPONENTS = [\n HeaderComponent,\n FooterComponent,\n OneColumnLayoutComponent,\n AuthLayoutComponent,\n];\n\nconst PIPES = [\n CapitalizePipe,\n PluralPipe,\n RoundPipe,\n TimingPipe,\n NumberWithCommasPipe,\n EvaIconsPipe,\n];\n\nconst NB_THEME_PROVIDERS = [\n ...NbThemeModule.forRoot(\n {\n name: 'corporate',\n },\n [CORPORATE_THEME],\n ).providers,\n ...NbSidebarModule.forRoot().providers,\n ...NbMenuModule.forRoot().providers,\n ...NbDatepickerModule.forRoot().providers,\n ...NbDialogModule.forRoot().providers,\n ...NbWindowModule.forRoot().providers,\n ...NbToastrModule.forRoot().providers,\n LayoutService,\n UserService,\n];\n\n@NgModule({\n imports: [...BASE_MODULES, ...NB_MODULES],\n exports: [...BASE_MODULES, ...NB_MODULES, ...COMPONENTS, ...PIPES],\n declarations: [...COMPONENTS, ...PIPES],\n})\n\nexport class ThemeModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: ThemeModule,\n providers: [...NB_THEME_PROVIDERS],\n };\n }\n}\n\n","import { AgPndBl } from \"../voucher-gen/gen-vou-model\";\r\n\r\nexport class Acm {\r\n constructor(\r\n public AcAtRefNo: number = 0,\r\n public AcPRefNo: number = 0,\r\n public AcPUnkCode: string = '',\r\n public AcName: string = '',\r\n public AcType: string = '',\r\n public GrpFRefNo: number = 0,\r\n public AcPtType: string = '',\r\n public AcOpBal: number = 0,\r\n public AcOpCrDr: string = '',\r\n public AcGSTNo: string = '',\r\n public AcPANNo: string = '',\r\n public AcMobNo: string = '',\r\n public AcEmlNo: string = '',\r\n public AcShrtName: string = '',\r\n public AcImpFlag: string = '',\r\n public AcTdsPer: number = 0,\r\n public AcCommPer: number = 0,\r\n\r\n public AcAdd1: string = '',\r\n public AcAdd2: string = '',\r\n public AcArea: string = '',\r\n public AcCity: string = '',\r\n public AcState: string = '',\r\n public AcStateCode: number = 0,\r\n public AcIGstFlag: string = '',\r\n public AcActive: string = '',\r\n public AcBankStat: string = '',\r\n public AcVhIncFld: string = '',\r\n public AcBkNo: string = '',\r\n public AcBkType: string = '',\r\n public AcBkIFSC: string = '',\r\n public AcBkName: string = '',\r\n public AcCanDel: string = '',\r\n public AcPhNo: string = '',\r\n public AcPinCode: string = '',\r\n public invList?: AgPndBl[],\r\n ) { }\r\n}\r\n\r\nexport class AcGrp {\r\n constructor(\r\n public GrpAtRefNo: number = 0,\r\n public GrpPRefNo: number = 0,\r\n public GrpName: string = '',\r\n public GrpInName: string = '',\r\n public Ungrp: string = '',\r\n public GrpCd: string = '',\r\n public UnGrpCd: string = '',\r\n public GrpType: string = '',\r\n public AcmStat: string = '',\r\n public DspStat: string = '',\r\n public PrefNo: number = 0,\r\n public GrpCrDr: string = '',\r\n public AddStat: string = '',\r\n public BankStat: string = '',\r\n public GrpCd6: string = '',\r\n public GrpName6: string = '',\r\n public GrpCd13: string = '',\r\n public GrpName13: string = '',\r\n public GrpCd20: string = '',\r\n public GrpName20: string = '',\r\n public GrpCd27: string = '',\r\n public GrpName27: string = '',\r\n ) { }\r\n}\r\n\r\nexport class AcGrpName {\r\n constructor(\r\n public GrpName: string = '',\r\n public BankStat: string = ''\r\n ) { }\r\n}\r\n\r\nexport class StateDtl {\r\n constructor(\r\n public State: string = '',\r\n public StateCode: number = 0\r\n ) { }\r\n}\r\nexport class FindAcm {\r\n constructor(\r\n public AcName: string = '',\r\n public AcPRefNo: Number = 0,\r\n public AcPUnkCode: string = ''\r\n ) { }\r\n}\r\n\r\nexport class AcmFilter {\r\n constructor(\r\n public AcType: string = '',\r\n public AcPtType: string = '',\r\n public AcName: string = ''\r\n ) { }\r\n}","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { environment } from '../../environments/environment';\nimport { AcGrp, Acm } from './AcmModel';\nimport { AppConfig } from '../app.config';\nimport { AgPndBl } from '../voucher-gen/gen-vou-model';\nimport { AddressDtl } from '../trad-invoice/trad-invoice-model';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class AcmService {\n\n constructor(private http: HttpClient) { }\n\n getAcmList(sObj) {\n return this.http.post(environment.HOST_URL + AppConfig.getAcmList, sObj);\n }\n\n\n\n getAcName(sType) {\n var url = environment.HOST_URL + AppConfig.getAcmListForCombo.concat('/?type=').concat(sType);\n return this.http.get(url);\n }\n\n\n getAcmDetailById(sNo) {\n var url = environment.HOST_URL + AppConfig.getAcmById.concat('/?id=').concat(sNo);\n return this.http.get(url);\n }\n\n getAcmPndBill(sNo) {\n var url = environment.HOST_URL + AppConfig.getAcmPndBill.concat('/?id=').concat(sNo);\n return this.http.get(url);\n }\n createAcm(params: Acm) {\n return this.http.post(environment.HOST_URL + AppConfig.addAcm, params);\n }\n\n createAcmPromise(params: Acm) {\n return this.http.post(environment.HOST_URL + AppConfig.addAcm, params).toPromise();\n }\n\n updateAcm(params: Acm) {\n return this.http.post(environment.HOST_URL + AppConfig.updateAcm, params);\n }\n\n deleteAcm(ss) {\n return this.http.get(environment.HOST_URL + AppConfig.deleteAcm + '/?id='.concat(ss));\n }\n\n getStateData() {\n return this.http.get<[]>(environment.HOST_URL + AppConfig.getStateList);\n }\n\n getAcType() {\n return this.http.get<[]>(environment.HOST_URL + AppConfig.getAcTypeList);\n }\n\n createAcGrp(params: AcGrp) {\n return this.http.post(environment.HOST_URL + AppConfig.saveAcGrp, params);\n }\n\n updateAcGrp(params: AcGrp) {\n return this.http.post(environment.HOST_URL + AppConfig.updateAcGrp, params);\n }\n\n\n saveAddressDtl(params: AddressDtl) {\n return this.http.post(environment.HOST_URL + AppConfig.saveAddressdtl, params);\n }\n\n updateAddressDtl(params: AddressDtl) {\n return this.http.post(environment.HOST_URL + AppConfig.updateAddressdtl, params);\n }\n\n deleteAddressDtl(ss) {\n return this.http.get(environment.HOST_URL + AppConfig.deleteAddressdtl + '/?id='.concat(ss));\n }\n\n getAddressById(ss) {\n return this.http.get(environment.HOST_URL + AppConfig.getAddressById + '/?id='.concat(ss));\n }\n\n getAddressList() {\n return this.http.get(environment.HOST_URL + AppConfig.getAddressList);\n }\n\n\n}\n","module.exports = \"
\\n Account Information\\n \\n
\\n\\n
\\n
\\n\\n \\n \\n\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n\\n\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FjLW1vZC9hYy1hZGRyZXNzLWRpYWxvZy9hYy1hZGRyZXNzLWRpYWxvZy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Subscription } from 'rxjs/Subscription';\nimport { AcmService } from '../AcmService'\n\nimport { NbToastrService } from '@nebular/theme';\nimport { Acm, AcGrp, StateDtl } from '../AcmModel';\nimport { CommonService } from '../../shared/service/common.service';\nimport { LrAcm } from '../../lr-mod/LrModel';\n\n@Component({\n selector: 'ngx-ac-address-dialog',\n templateUrl: './ac-address-dialog.component.html',\n styleUrls: ['./ac-address-dialog.component.scss']\n})\nexport class AcAddressDialogComponent implements OnInit {\n\n scManager = new Subscription();\n\n AcmCmb: LrAcm[] = [];\n AcTypeData: AcGrp[] = [];\n AcmData: Acm = new Acm();\n StateData: StateDtl[] = [];\n\n @Input() eAcPUnkCode;\n @Input() spinner: boolean;\n fCanEdit: boolean = true;\n\n toasterTitle = 'Account';\n\n\n constructor(private sAcmService: AcmService,\n private toasterService: NbToastrService,\n private sCommonService: CommonService,\n private activeModal: NgbActiveModal\n ) {\n\n }\n\n ngOnInit() {\n this.getAcType();\n this.getStateList();\n\n if (this.AcmData.AcPUnkCode != undefined || this.AcmData.AcPUnkCode != \"\") {\n this.eAcPUnkCode = this.AcmData.AcPUnkCode;\n this.getAcmDtlByName();\n }\n\n }\n\n getAcType() {\n this.spinner = true;\n this.scManager.add(this.sCommonService.getAcType().subscribe((res) => {\n this.spinner = false;\n if (res == null) return;\n if (res[\"data\"] == null) return;\n this.AcTypeData = res[\"data\"];\n }, (err) => {\n this.spinner = false;\n }));\n }\n\n getStateList() {\n this.spinner = true;\n this.scManager.add(this.sCommonService.getState().subscribe((res) => {\n this.spinner = false;\n if (res == null) return;\n if (res['data'] == null) return;\n this.StateData = res['data'];\n }, (err) => {\n this.spinner = false;\n }));\n }\n\n getAcmDtlByName() {\n this.spinner = true;\n this.scManager.add(this.sAcmService.getAcmDetailById(this.eAcPUnkCode).subscribe((res) => {\n this.spinner = false;\n if (res == null) return;\n if (res[\"data\"] == null) return;\n this.AcmData = res[\"data\"];\n this.fCanEdit = false;\n }, (err) => {\n this.spinner = false;\n this.toasterService.info(\"Error while saving....\", this.toasterTitle);;\n }));\n }\n\n SaveAcm() {\n if (this.AcmData.AcName == undefined || this.AcmData.AcName == \"\") {\n this.toasterService.danger(\"Can't Save A/c. Name should not be Blank....\", this.toasterTitle);\n return;\n }\n if (this.AcmData.AcType == undefined || this.AcmData.AcType == \"\") {\n this.toasterService.danger(\"Can't Save A/c. Type should not be Blank....\", this.toasterTitle);\n return;\n }\n\n if (this.AcmData.AcOpCrDr == undefined && Number(this.AcmData.AcOpBal) > 0) {\n this.toasterService.danger(\"Can't Save Cr/Dr should not be Blank....\", this.toasterTitle);\n return;\n }\n\n if (this.AcmData.AcPtType == undefined || this.AcmData.AcPtType == \"\") this.AcmData.AcPtType = \"Ac\";\n\n\n var tGrp = this.AcTypeData.filter(data => {\n if (data.GrpName == this.AcmData.AcType)\n return data.BankStat;\n });\n\n if (tGrp != null) {\n this.AcmData.AcBankStat = tGrp[0].BankStat;\n this.AcmData.GrpFRefNo = tGrp[0].GrpPRefNo;\n }\n\n\n if (this.AcmData.AcPUnkCode != \"\") {\n this.updateAcm()\n }\n else {\n this.ReplAcmData();\n }\n }\n\n async ReplAcmData() {\n this.spinner = true;\n this.scManager.add(await this.sAcmService.createAcmPromise(this.AcmData).then((res) => {\n if (res['StatusCode'] == 501) {\n this.toasterService.info('Duplicate Entry...', this.toasterTitle);\n }\n else {\n this.toasterService.success('Created successfully', this.toasterTitle);\n\n let sObj = new LrAcm();\n sObj.AcName = res['data'].AcName;\n sObj.AcPRefNo = res['data'].AcPRefNo;\n sObj.AcPtType = res['data'].AcPtType;\n this.AcmCmb.push(sObj);\n this.spinner = false;\n this.activeModal.close(this.AcmData);\n }\n }, (err) => {\n if (err.status == 500) this.toasterService.info('Error....', this.toasterTitle);\n else if (err.status == 501) this.toasterService.info('Duplicate Entry', this.toasterTitle);\n }));\n this.spinner = false;\n }\n\n updateAcm() {\n this.spinner = true;\n this.scManager.add(this.sAcmService.updateAcm(this.AcmData).subscribe((res) => {\n if (res['StatusCode'] == 501) this.toasterService.info('Duplicate Entry...', this.toasterTitle);\n else {\n\n this.AcmCmb.map(data => {\n if (this.AcmData.AcPRefNo == data.AcPRefNo) {\n data.AcName = this.AcmData.AcName;\n }\n })\n\n this.toasterService.success('Updated successfully', this.toasterTitle);\n this.spinner = false;\n this.activeModal.close(this.AcmData);\n }\n }, (err) => {\n }));\n this.spinner = false;\n }\n\n closeModal() {\n this.activeModal.close();\n }\n\n ngOnDestroy() {\n if (this.scManager) this.scManager.unsubscribe();\n }\n\n\n}\n","module.exports = \"
\\n Account Information\\n \\n
\\n\\n
\\n
\\n\\n \\n \\n\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n\\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FjLW1vZC9hYy1zaG9ydC9hYy1zaG9ydC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Subscription } from 'rxjs/Subscription';\nimport { AcmService } from '../AcmService'\n\nimport { NbToastrService } from '@nebular/theme';\nimport { Acm, AcGrp } from '../AcmModel';\nimport { CommonService } from '../../shared/service/common.service';\nimport { LrAcm } from '../../lr-mod/LrModel';\n\n\n@Component({\n selector: 'ngx-ac-short',\n templateUrl: './ac-short.component.html',\n styleUrls: ['./ac-short.component.scss']\n})\nexport class AcShortComponent implements OnInit, OnDestroy {\n\n scManager = new Subscription();\n\n AcmCmb: LrAcm[] = [];\n AcTypeData: AcGrp[] = [];\n AcmData: Acm = new Acm();\n\n @Input() eAcPUnkCode;\n @Input() spinner: boolean;\n\n toasterTitle = 'Account';\n\n\n constructor(private sAcmService: AcmService,\n private toasterService: NbToastrService,\n private sCommonService: CommonService,\n private activeModal: NgbActiveModal\n ) { }\n\n ngOnInit() {\n this.getAcType();\n }\n\n getAcType() {\n this.spinner = true;\n this.scManager.add(this.sCommonService.getAcType().subscribe((res) => {\n this.spinner = false;\n if (res == null) return;\n if (res[\"data\"] == null) return;\n this.AcTypeData = res[\"data\"];\n }, (err) => {\n this.spinner = false;\n }));\n }\n\n getAcmDtlByName() {\n this.spinner = true;\n this.scManager.add(this.sAcmService.getAcmDetailById(this.eAcPUnkCode).subscribe((res) => {\n this.spinner = false;\n if (res == null) return;\n if (res[\"data\"] == null) return;\n this.AcmData = res[\"data\"];\n }, (err) => {\n this.spinner = false;\n this.toasterService.info(\"Error while saving....\", this.toasterTitle);;\n }));\n }\n\n\n SaveAcm() {\n if (this.AcmData.AcName == undefined || this.AcmData.AcName == \"\") {\n this.toasterService.danger(\"Can't Save A/c. Name should not be Blank....\", this.toasterTitle);\n return;\n }\n if (this.AcmData.AcType == undefined || this.AcmData.AcType == \"\") {\n this.toasterService.danger(\"Can't Save A/c. Type should not be Blank....\", this.toasterTitle);\n return;\n }\n\n if (this.AcmData.AcOpCrDr == undefined && Number(this.AcmData.AcOpBal) > 0) {\n this.toasterService.danger(\"Can't Save Cr/Dr should not be Blank....\", this.toasterTitle);\n return;\n }\n\n if (this.AcmData.AcPtType == undefined || this.AcmData.AcPtType == \"\") this.AcmData.AcPtType = \"Ac\";\n\n\n var tGrp = this.AcTypeData.filter(data => {\n if (data.GrpName == this.AcmData.AcType)\n return data.BankStat;\n });\n\n if (tGrp != null) {\n this.AcmData.AcBankStat = tGrp[0].BankStat;\n this.AcmData.GrpFRefNo = tGrp[0].GrpPRefNo;\n }\n\n\n if (this.AcmData.AcPUnkCode != \"\") {\n this.updateAcm()\n }\n else {\n this.ReplAcmData();\n }\n }\n\n async ReplAcmData() {\n this.spinner = true;\n this.scManager.add(await this.sAcmService.createAcmPromise(this.AcmData).then((res) => {\n if (res['StatusCode'] == 501) {\n this.toasterService.info('Duplicate Entry...', this.toasterTitle);\n }\n else {\n this.toasterService.success('Created successfully', this.toasterTitle);\n\n let sObj = new LrAcm();\n sObj.AcName = res['data'].AcName;\n sObj.AcPRefNo = res['data'].AcPRefNo;\n sObj.AcPtType = res['data'].AcPtType;\n this.AcmCmb.push(sObj);\n this.spinner = false;\n this.activeModal.close(this.AcmCmb);\n }\n }, (err) => {\n if (err.status == 500) this.toasterService.info('Error....', this.toasterTitle);\n else if (err.status == 501) this.toasterService.info('Duplicate Entry', this.toasterTitle);\n }));\n this.spinner = false;\n }\n\n updateAcm() {\n this.spinner = true;\n this.scManager.add(this.sAcmService.updateAcm(this.AcmData).subscribe((res) => {\n if (res['StatusCode'] == 501) this.toasterService.info('Duplicate Entry...', this.toasterTitle);\n else {\n\n this.AcmCmb.map(data => {\n if (this.AcmData.AcPRefNo == data.AcPRefNo) {\n data.AcName = this.AcmData.AcName;\n }\n })\n\n this.toasterService.success('Updated successfully', this.toasterTitle);\n this.spinner = false;\n this.activeModal.close(this.AcmCmb);\n }\n }, (err) => {\n }));\n this.spinner = false;\n }\n\n closeModal() {\n this.activeModal.close();\n }\n\n ngOnDestroy() {\n if (this.scManager) this.scManager.unsubscribe();\n }\n\n\n}\n","import { ExtraOptions, RouterModule, Routes } from '@angular/router';\nimport { NgModule } from '@angular/core';\nimport { OneColumnLayoutComponent } from './@theme/layouts';\nimport { AuthLayoutComponent } from './@theme/components/auth-layout/auth-layout.component';\nimport { AuthGuardChildService, AuthGuardService } from './shared/service/auth-guard.service';\nimport { BranchSelectionComponent } from './shared/components/branch-selection/branch-selection.component';\n\n\nconst routes: Routes = [\n {\n path: '',\n component: OneColumnLayoutComponent,\n canActivateChild: [AuthGuardChildService],\n canActivate: [AuthGuardService],\n\n children: [\n {\n path: '',\n redirectTo: 'home',\n pathMatch: 'full',\n },\n {\n path: 'home',\n loadChildren: './recursive/recursive.module#RecursiveModule',\n },\n {\n path: 'account',\n loadChildren: './ac-mod/ac-mod.module#AcModModule',\n },\n {\n path: 'voucher',\n loadChildren: './money-receipt/money-receipt.module#MoneyReceiptModule',\n },\n {\n path: 'driver',\n loadChildren: './drv/drv.module#DrvModule',\n },\n {\n path: 'employee',\n loadChildren: './employee/employee.module#EmployeeModule',\n },\n {\n path: 'vehicle',\n loadChildren: './vehicle/vehicle.module#VehicleModule',\n },\n {\n path: 'lronly',\n loadChildren: './lr-mod/lr-mod.module#LrModModule',\n },\n {\n path: 'challan',\n loadChildren: './chln-mod/chln-mod.module#ChlnModModule',\n },\n {\n path: 'unloading',\n loadChildren: './unloading/unloading.module#UnloadingModule',\n },\n {\n path: 'delivery',\n loadChildren: './mat-delivery/mat-delivery.module#MatDeliveryModule',\n },\n {\n path: 'lr',\n loadChildren: './lr-management/lr-management.module#LrManagementModule',\n },\n {\n path: 'user',\n loadChildren: './user-management/user-management.module#UserManagementModule',\n },\n {\n path: 'master',\n loadChildren: './master-management/master-management.module#MasterManagementModule',\n },\n {\n path: 'recmaster',\n loadChildren: './masters/masters.module#MastersModule',\n },\n {\n path: 'chalan',\n loadChildren: './chalan-management/chalan-management.module#ChalanManagementModule',\n },\n {\n path: 'invoice',\n loadChildren: './invoice/invoice.module#InvoiceModule',\n },\n {\n path: 'tradinvoice',\n loadChildren: './trad-invoice/trad-invoice.module#TradInvoiceModule',\n //src\\app\\trad-invoice\\trad-invoice.module.ts\n },\n {\n path: 'trip',\n loadChildren: './trip-sheet/trip-sheet.module#TripSheetModule',\n },\n {\n path: 'mrs',\n loadChildren: './mrs/mrs.module#MrsModule',\n },\n {\n path: 'colvou',\n loadChildren: './vr-collection/vr-collection.module#VrCollectionModule',\n },\n {\n path: 'vhparts',\n loadChildren: './vh-parts/vh-parts.module#VhPartsModule',\n },\n {\n path: 'vhmaintenance',\n //src\\app\\vh-maintenance\\vh-maintenance.module.ts\n loadChildren: './vh-maintenance/vh-maintenance.module#VhMaintenanceModule',\n },\n {\n path: 'genvoucher',\n //src\\app\\voucher-gen\\voucher-gen.module.ts\n loadChildren: './voucher-gen/voucher-gen.module#VoucherGenModule',\n },\n {\n path: 'views',\n //src\\app\\view-management\\view-management.module.ts\n //E:\\Angular\\RecWeb\\RecFrontend\\src\\app\\view-management\\view-management.module.ts\n loadChildren: './view-management/view-management.module#ViewManagementModule',\n },\n\n ],\n },\n {\n path: 'print',\n component: AuthLayoutComponent,\n children: [\n {\n path: 'invoice',\n loadChildren: './my-print/my-print.module#MyPrintModule',\n },\n {\n path: 'mr',\n loadChildren: './my-print/my-print.module#MyPrintModule',\n },\n {\n path: 'lr',\n loadChildren: './my-print/my-print.module#MyPrintModule',\n },\n {\n path: 'dlv',\n loadChildren: './my-print/my-print.module#MyPrintModule',\n },\n\n ]\n },\n\n {\n path: 'auth',\n component: AuthLayoutComponent,\n children: [\n {\n path: '',\n loadChildren: './authentication/authentication.module#AuthenticationModule',\n },\n ],\n },\n {\n path: 'branch',\n component: AuthLayoutComponent,\n canActivateChild: [AuthGuardChildService],\n canActivate: [AuthGuardService],\n children: [\n {\n path: '',\n component: BranchSelectionComponent,\n },\n ],\n },\n // {\n // path: '**',\n // component: NotFoundComponent,\n // },\n\n];\n\n\n\nconst config: ExtraOptions = {\n useHash: true,\n};\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, config)],\n exports: [RouterModule],\n})\n\nexport class AppRoutingModule {\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'ngx-app',\n template: ' ',\n})\n\nexport class AppComponent implements OnInit {\n\n public gLoginBranch: string;\n public gLoginCmp: string;\n public gLoginYear: string;\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n}\n","export class AppConfig {\n\n\n public static ACCOUNT = 'account';\n public static LR = 'lr';\n public static CITY = 'city';\n public static STATE = 'state';\n public static BRANCH = 'branch';\n public static MATERIAL = 'material';\n public static CHALAN = 'chalan';\n public static LR_ITEM = 'lrItem';\n public static RBRANCH = 'RBRANCH';\n\n public static getStationList = 'api/Station/GetStationList';\n public static addStation = \"api/Station/SaveStation\";\n public static updateStation = \"api/Station/UpdateStation\";\n public static deleteStation = \"api/Station/DeleteStation\";\n public static getStateList = \"api/Station/GetStateList\";\n\n public static BranchGetById = \"api/Branch/GetBranchById\";\n public static BranchAdd = \"api/Branch/SaveBranch\";\n public static BranchUpdate = \"api/Branch/UpdateBranch\";\n public static BranchDelete = \"api/Branch/DeleteBranch\";\n public static BranchList = \"api/Branch/GetBranchList\";\n\n public static LrSaveFullLoad = \"api/Builty/SaveBuiltyFullLoad\";\n public static LrUpdateFullLoad = \"api/Builty/UpdateBuiltyFullLoad\";\n public static LrAdd = \"api/Builty/SaveBuilty\";\n public static LrUpdate = \"api/Builty/UpdateBuilty\";\n public static LrDelete = \"api/Builty/DeleteBuilty\";\n //public static getLrByIdFull = \"api/Builty/GetLrByCode\";\n public static getLrByIdPart = \"api/Builty/GetBuiltyByCode\";\n public static findLrByLrInfo = \"api/Builty/FindBuiltyByLrInfo\";\n public static updateDlv = \"api/Builty/UpdateDelivery\";\n public static deleteDlv = \"api/Builty/DeleteDelivery\";\n public static addLrVoucher = \"api/Builty/SaveLrVoucher\";\n public static getFreightCharges = \"api/User/GetFrCharges\";\n public static printLrByIdPart = \"api/Builty/printLrByIdPart\";\n\n public static getMatDelivery = \"api/Lr/getMatDelivery\";\n //public static getMatDlvById = \"api/Lr/getMatDlvById\";\n public static getLrList = \"api/Lr/getLrList\";\n public static getLrSummary = \"api/builty/GetLrSummary\"; //GetLrTripSummary\n public static getLrTripSummary = \"api/builty/GetLrTripSummary\"; //GetLrTripSummary\n public static getDlvSummary = \"api/builty/GetDlvSummary\";\n public static getHomeLrSummary = \"api/builty/GetHomeLrSummary\";\n\n //Utility\n public static updateBillCharge = \"api/User/UpdateBillCharge\";\n public static getBcList = \"api/User/GetBcList\";\n public static getOptionac = \"api/User/GetOptionAc\";\n public static updateOptionac = \"api/User/UpdateOptionAc\";\n public static getOptionEmail = \"api/User/GetOptionEmail\";\n public static updateOptionEmail = \"api/User/UpdateOptionEmail\";\n public static getDashboardCount = \"api/User/GetDashboardCount\";\n\n public static getOptionInv = \"api/User/GetOptionInv\";\n public static updateOptionInv = \"api/User/UpdateOptionInv\";\n\n //User\n public static getUserByRefNo = \"api/User/getUserByRefNo\";\n public static GetAdminMenuList = \"api/User/GetAdminMenuList\";\n public static getUserList = \"api/User/GetUserList\";\n public static addLoginUser = \"api/User/SaveUser\";\n public static updateUser = \"api/User/UpdateUser\";\n public static UserBrList = \"api/User/GetUserBrList\";\n public static deleteUser = \"api/User/DeleteUser\";\n public static CheckCmpId = 'api/User/checkCmpId';\n public static getCmpInfo = \"api/User/GetCmpInfo\";\n public static GetFirmInfo = \"api/User/GetFirmInfo\";\n public static saveFirmInfo = \"api/User/SaveFirmInfo\";\n public static FrmDocDtl = \"api/User/FrmDocDtl\";\n public static GetFrmDoc = \"api/User/GetFrmDoc\";\n public static DeleteFrmDoc = \"api/User/DeleteDoc\";\n public static saveCmpInfo = \"api/User/SaveCmpInfo\";\n public static getCmpList = \"api/User/GetCmpList\";\n public static deleteCmp = \"api/User/DeleteCmp\";\n public static editCmpInfo = \"api/User/EditCmpInfo\";\n public static CheckUser = \"api/User/CheckUser\";\n public static ImportStationList = \"api/Station/ImportStationList\";\n public static ImportVHList = \"api/Vehicle/ImportVHList\";\n public static ImportMatList = \"api/Material/ImportMatList\";\n public static ImportDrList = \"api/Driver/ImportDrList\";\n public static ImportAcmList = \"api/Account/ImportAcmList\";\n public static ImportLrList = \"api/Builty/ImportLrList\";\n\n public static GetMenuList = \"api/User/GetMenuList\";\n public static SaveMenuDtl = \"api/User/SaveMenuDtl\";\n\n\n //MRS\n public static MrsAdd = \"api/Mrs/SaveMrs\";\n public static MrsUpdate = \"api/Mrs/UpdateMrs\";\n public static deleteMrs = \"api/Mrs/DeleteMrs\";\n public static getMrsSummary = \"api/Mrs/GetMrsSummary\";\n public static pdfMrsSummary = \"api/Mrs/pdfMrsSummary\";\n public static MRListInMrs = \"api/Mrs/GetMRListInMrs\";\n public static getMrsById = \"api/Mrs/GetMrsById\";\n public static getMrsByMrsInfo = \"api/Mrs/GetMrsByMrsInfo\";\n\n\n //Collection Voucher\n public static getLRListInColVou = \"api/Collection/GetLRListInColVou\";\n public static addColVou = \"api/Collection/SaveColVoucher\";\n public static updateColVou = \"api/Collection/UpdateColVoucher\";\n public static getColVouById = \"api/Collection/GetColVouById\";\n public static getColVouByNo = \"api/Collection/getColVouByNo\";\n public static getColVouSummary = \"api/Collection/GetCollectionSummary\";\n public static delColVou = \"api/Collection/DeleteColVoucher\";\n\n //General Voucher\n\n public static getVrDtlByCode = \"api/Voucher/GetVoucherByCode\";\n public static saveVrDtl = \"api/Voucher/SaveVoucher\";\n public static updateVrDtl = \"api/Voucher/UpdateVoucher\";\n public static getVrSummary = \"api/Voucher/GetVoucherSummary\";\n public static deleteVrDtl = \"api/Voucher/DeleteVoucher\";\n public static getTrBal = \"api/Voucher/GetLedger\";\n public static getBSheet = \"api/Voucher/GetBSheet\";\n public static printReport = \"api/Voucher/printReport\";\n public static getTrBalReport = \"api/Voucher/getTrBalReport\";\n public static getTrBalReportExcel = \"api/Voucher/getTrBalReportExcel\";\n\n //Vehicle \n public static addVeh = \"api/Vehicle/SaveVehicle\";\n public static getVehList = \"api/Vehicle/GetVehicleList\";\n public static getVehicleById = \"api/Vehicle/GetVehicleById\";\n public static updateVeh = \"api/Vehicle/UpdateVehicle\";\n public static deleteVeh = \"api/Vehicle/DeleteVehicle\";\n public static getVhCatList = \"api/Vehicle/GetVhCatList\";\n public static GetDocList = \"api/Vehicle/GetDocList\";\n public static SaveDoc = \"api/Vehicle/SaveDoc\";\n public static GetViewDoc = \"api/Vehicle/GetViewDoc\";\n public static DeleteDoc = \"api/Vehicle/DeleteDoc\";\n\n //ACM\n public static addAcm = \"api/Account/SaveAccount\";\n public static getAcmList = \"api/Account/GetAcmList\";\n public static getAcmListForInv = \"api/Account/GetAcmListForInv\";\n public static getAcmListForChln = \"api/Account/getAcmListForChln\";\n public static getAcmListForCombo = \"api/Account/GetAcmListForCombo\";\n public static getAcmById = \"api/Account/GetAcmById\";\n public static getAcmPndBill = \"api/Account/GetAcmPndBill\";\n public static deleteAcm = \"api/Account/DeleteAccount\";\n public static updateAcm = \"api/Account/UpdateAccount\";\n public static getAcAdd = \"api/Account/getAcAdd\";\n public static getVrTypeList = \"api/VrType/GetVrTypeList\";\n public static getAddressList = \"api/Account/GetAddressList\";\n public static saveAddressdtl = \"api/Account/SaveAddressDtl\";\n public static updateAddressdtl = \"api/Account/UpdateAddressDtl\";\n public static deleteAddressdtl = \"api/Account/DeleteAddressDtl\";\n public static getAddressById = \"api/Account/GetAddressById\";\n\n //AcGroup\n public static getAcTypeList = \"api/Acgroup/GetAcGroupList\";\n public static saveAcGrp = \"api/Acgroup/SaveAcGroup\";\n public static updateAcGrp = \"api/Acgroup/UpdateAcGroup\";\n\n //Employee\n public static addEmp = \"api/Employ/SaveEmploy\";\n public static getEmpList = \"api/Employ/GetEmployList\";\n public static getEmpByName = \"api/Employ/GetEmployById\";\n public static updateEmp = \"api/Employ/UpdateEmploy\";\n public static deleteEmp = \"api/Employ/DeleteEmploy\";\n\n //Driver\n public static addDrv = \"api/Driver/SaveDriver\";\n public static getDrvList = \"api/Driver/GetDriverList\";\n public static getDrvById = \"api/Driver/GetDriverById\";\n public static deleteDrv = \"api/Driver/DeleteDriver\";\n public static updateDrv = \"api/Driver/UpdateDriver\";\n\n\n //Material\n public static addMat = \"api/Material/SaveMaterial\";\n public static getMatList = \"api/Material/GetMatList\";\n public static getMatById = \"api/Material/GetMatbyId\";\n public static deleteMat = \"api/Material/DeleteMaterial\";\n public static updateMat = \"api/Material/UpdateMaterial\";\n\n\n //Unit\n public static addUnit = \"api/Material/SaveUnit\";\n public static getUnitList = \"api/Material/GetUnitList\";\n public static getUnitById = \"api/Material/GetUnitById\";\n public static deleteUnit = \"api/Material/DeleteUnit\";\n public static updateUnit = \"api/Material/UpdateUnit\";\n\n\n\n public static addPacking = \"api/Packing/SavePacking\";\n public static getPackingList = \"api/Packing/GetPackingList\";\n public static getPackingById = \"api/Packing/GetPackingbyId\";\n public static deletePacking = \"api/Packing/DeletePacking\";\n public static updatePacking = \"api/Packing/UpdatePacking\";\n\n\n public static addChln = \"api/Challan/SaveChln\";\n public static getChlnList = \"api/Challan/getChlnList\";\n public static updateChln = \"api/Challan/UpdateChln\"; //-------------\n public static deleteChln = \"api/Challan/DeleteChln\";\n public static updateChlnAmt = \"api/Challan/updateChlnAmt\";\n public static getLrListInChln = \"api/Builty/GetLrListByChlnCode\";\n public static getChlnById = \"api/Challan/GetChlnByCode\";\n public static getChlnByChInfo = \"api/Challan/getChlnByChInfo\";\n public static getChlnSummary = \"api/Challan/getChlnSummary\";\n public static getChlnVoucher = \"api/Challan/GetChlnVoucher\";\n public static addChlnVoucher = \"api/Challan/SaveChlnVoucher\"; //---------\n public static printChlnReport = \"api/Challan/printChlnReport\";\n\n public static getTripIncome = \"api/Challan/getTripIncome\";\n\n\n public static saveTrip = \"api/Trip/SaveTrip\";\n public static updaeTrip = \"api/Trip/UpdateTrip\";\n public static deleteTrp = \"api/Trip/DeleteTrip\";\n public static getTrpById = \"api/Trip/GetTripByCode\";\n public static getTrpSummary = \"api/Trip/GetTripSummary\";\n public static getTrpVoucher = \"api/Trip/GetTripVoucher\";\n public static getTrpChallan = \"api/Trip/GetTripInLr\";\n\n public static addMr = \"api/RefVoucher/SaveMr\";\n public static updateMr = \"api/RefVoucher/UpdateMr\";\n public static deleteMr = \"api/RefVoucher/DeleteMrDtl\";\n public static deleteAg = \"api/RefVoucher/DeleteAgDtl\";\n public static getMrSummary = \"api/RefVoucher/GetMrSummary\";\n public static getAgSummary = \"api/RefVoucher/GetAgSummary\";\n public static getMrDtlById = \"api/RefVoucher/GetMrDtlById\";\n public static getMrList = \"api/RefVoucher/getMrList\";\n public static pdfReport = \"api/RefVoucher/pdfReport\";\n public static mrPdfReport = \"api/RefVoucher/mrPdfReport\";\n\n public static getAgDtlById = \"api/RefVoucher/GetAgDtlById\";\n public static saveVrAg = \"api/RefVoucher/SaveRefVoucher\";\n public static updateVrAg = \"api/RefVoucher/UpdateRefVoucher\";\n public static deleteVrAg = \"api/RefVoucher/DeleteRefVoucher\";\n public static getOsList = \"api/RefVoucher/GetOsList\";\n public static getOsBillSummary = \"api/RefVoucher/GetOsBillSummary\";\n public static getOsChlnSummary = \"api/RefVoucher/GetOsChlnSummary\";\n public static getAddressInfo = \"api/AgDtl/getAddress\";\n\n\n //Invoice\n public static updateInv = \"api/invoice/UpdateInvoice\";\n public static deleteInv = \"api/invoice/DeleteInvoice\";\n public static getLrListByInvCode = \"api/builty/GetLrListByInvCode\";\n public static getInvByCode = \"api/invoice/GetInvoiceByCode\";\n public static getInvByInvNo = \"api/invoice/GetInvoiceByInvNo\";\n public static getInvListZZ = \"api/Invoice/getInvList\";\n public static getInvSummary = \"api/invoice/GetInvSummary\";\n public static getInvGstSummary = \"api/invoice/GetInvGstSummary\";\n public static pdfFreightInvoice = \"api/invoice/PdfFreightInvoice\";\n // public static MakePdfInvoice = \"api/invoice/MakePdfInvoice\";\n public static GetTCForFront = \"api/Views/GetTCForFront\";\n public static GetCmpLh = \"api/invoice/GetCmpLh\";\n public static saveInv = \"api/invoice/SaveInvoice\";\n public static getServerPath = \"api/invoice/CreateMyFolder\";\n\n public static getInvTcList = \"api/invoice/GetInvTcList\";\n public static saveInvTc = \"api/invoice/SaveInvTc\"\n public static updateInvTc = \"api/invoice/UpdateInvTc\"\n public static deleteInvTc = \"api/invoice/DeleteInvTc\"\n public static getInvTc = \"api/invoice/GetInvTc\"\n\n public static getTradInvSummary = \"api/tradinvoice/GetTradInvSummary\";\n public static saveTradInvoice = \"api/tradinvoice/SaveTradInvoice\";\n public static updateTradInvoice = \"api/tradinvoice/UpdateTradInvoice\";\n public static getTradInvoiceByCode = \"api/tradinvoice/GetTradInvoiceByCode\";\n public static deleteTradInvoice = \"api/tradinvoice/DeleteTradInvoice\";\n public static pdfTradInvoice = \"api/tradinvoice/PdfTradInvoice\";\n public static eInvTradInvoice = \"api/tradinvoice/EInvTradInvoice\";\n public static updateIrnTradInvoice = \"api/tradinvoice/UpdateIrnTradInvoice\";\n //\n\n //\n //Unloading\n public static saveULd = \"api/Unloading/SaveUnloading\";\n public static updateULd = \"api/Unloading/UpdateUnloading\";\n public static deleteULd = \"api/Unloading/DeleteUnloading\";\n public static getULdList = \"api/Unloading/getULdList\";\n public static getULdByCode = \"api/Unloading/GetULdByCode\";\n public static getULdByULdNo = \"api/Unloading/GetULdByULdNo\";\n public static getLrListByUnCode = \"api/Unloading/GetLrListByUnCode\";\n public static getLrListByChNo = \"api/Unloading/GetLrListByChlnInfo\";\n public static getULdSummary = \"api/Unloading/GetULdSummary\";\n\n //General\n public static getRepGrpName = \"api/Views/GetRepGrpName\";\n public static getRepColMas = \"api/Views/GetRepColMas\";\n public static getViewListByCmp = \"api/Views/GetViewListByCmp\";\n public static getViewsByGrp = \"api/Views/GetViewsByGrp\";\n public static getVwColsByGrp = \"api/Views/GetVwColsByGrp\";\n public static getRepsList = \"api/Views/GetRepsList\";\n public static getRepColList = \"api/Views/GetRepColList\";\n public static getViewByRefNo = \"api/Views/GetViewByRefNo\";\n\n\n //GetViewByRefNo\n\n public static saveView = \"api/Views/SaveView\";\n public static updateView = \"api/Views/UpdateView\";\n public static deleteView = \"api/Views/DeleteView\";\n\n public static getDocumentGrpList = 'api/Views/GetDocumentGrpList';\n public static getDocList = 'api/Views/GetDocumentList';\n public static addDoc = \"api/Views/SaveDocument\";\n public static updateDoc = \"api/Views/UpdateDocument\";\n public static deleteDoc = \"api/Views/DeleteDocument\";\n\n\n //Item Master\n public static getPartList = \"api/VehicleVM/GetVmItemList\";\n public static getMakeList = \"api/VehicleVM/GetVmMakeList\";\n public static getPartCatList = \"api/VehicleVM/GetItCatList\";\n public static getVhExpGroup = \"api/VehicleVM/GetExpGroupList\";\n public static addPart = \"api/VehicleVM/SaveVhItem\";\n public static updatePart = \"api/VehicleVM/UpdateVhItem\";\n public static getPartById = \"api/VehicleVM/GetVhItemById\";\n public static deletePart = \"api/VehicleVM/deletePart\";\n public static getPartCatById = \"api/VehicleVM/DeleteVhItem\";\n\n public static addPartCat = \"api/VehicleVM/SaveVhItemCat\";\n public static updatePartCat = \"api/VehicleVM/UpdateItemCat\";\n public static deletePartCat = \"api/VehicleVM/DeleteItemCat\";\n\n public static addVmMake = \"api/VehicleVM/SaveVhItemMake\";\n public static updateVmMake = \"api/VehicleVM/UpdateItemMake\";\n public static deleteVmMake = \"api/VehicleVM/DeleteItemMake\";\n\n public static getItemGradeList = \"api/VehicleVM/GetItemGradeList\";\n public static getItemGradeById = \"api/VehicleVM/GetItemGradeById\";\n public static addItemGrade = \"api/VehicleVM/SaveItemGrade\";\n public static updateItemGrade = \"api/VehicleVM/UpdateItemGrade\";\n public static deleteItemGrade = \"api/VehicleVM/DeleteItemGrade\";\n\n\n\n public static getVmMakeById = \"api/VehicleVM/getVmMakeById\";\n\n public static getVmDetailById = \"api/VehicleVM/GetVmDetailById\";\n public static saveVmPurchase = \"api/VehicleVM/SaveVmPurchase\";\n public static getVmRmvDetailById = \"api/VehicleVM/GetVmRmvDetailById\";\n\n public static getVmPurPartyList = \"api/VehicleVM/getVmPurPartyList\";\n public static getVmPurPartyById = \"api/VehicleVM/getVmPurPartyById\";\n\n public static updateVmPurParty = \"api/VehicleVM/updateVmPurParty\";\n public static deleteVmPurParty = \"api/VehicleVM/deleteVmPurParty\";\n public static getVmPurList = \"api/VehicleVM/getVmPurList\";\n\n //VM Register\n public static getVmPurSummary = \"api/VehicleVM/GetVmPurSummary\";\n public static getVmItemSummary = \"api/VehicleVM/GetVmItemSummary\";\n public static getVmStrStock = \"api/VehicleVM/GetVmStrStock\";\n public static getVehCurParts = \"api/VehicleVM/GetVehCurParts\";\n public static getFindTyreNo = \"api/VehicleVM/GetFindTyreNo\";\n\n //WorkShop\n public static saveWsPurchase = \"api/WorkShop/SaveWsPurchase\";\n public static getVehLedger = \"api/WorkShop/GetVehLedger\";\n public static updateWsPurchase = \"api/WorkShop/UpdateWsPurchase\";\n public static deleteWsPurchase = \"api/WorkShop/DeleteWsPurchase\";\n\n public static saveWsRmvParts = \"api/WorkShop/SaveWsRmvParts\";\n public static updateWsRmvParts = \"api/WorkShop/UpdateWsRmvParts\";\n public static getVehRmvParts = \"api/VehicleVM/GetVehRmvParts\";\n public static deleteWsRmvParts = \"api/WorkShop/DeleteWsRmvParts\";\n\n public static getRprParts = \"api/VehicleVM/GetRprParts\";\n\n\n ////\n //Print\n public static mrPrint = \"api/Print/getMrPrint\";\n public static dlvPrint = \"api/Print/getDlvPrint\";\n public static invPrint = \"api/Print/getInvPrint\";\n\n}\n","import { APP_BASE_HREF } from '@angular/common';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NgModule } from '@angular/core';\n\nimport { AppComponent } from './app.component';\nimport { AppRoutingModule } from './app-routing.module';\nimport { ThemeModule } from './@theme/theme.module';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { RouterModule } from '@angular/router';\nimport { SharedModule } from './shared/shared.module';\nimport { SharedService } from './shared/service/shared.service';\nimport { CommonService } from './shared/service/common.service';\n\n@NgModule({\n declarations: [AppComponent],\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n AppRoutingModule,\n RouterModule,\n NgbModule.forRoot(),\n ThemeModule.forRoot(),\n SharedModule\n\n ],\n bootstrap: [AppComponent],\n providers: [\n SharedService, CommonService,\n { provide: APP_BASE_HREF, useValue: '/' },\n ],\n\n\n})\n\nexport class AppModule {\n}\n","import { Acm } from \"../ac-mod/AcmModel\";\r\nimport { FirmDtl } from \"../user-management/userModel\";\r\n\r\n\r\nexport class EmailInv {\r\n constructor(\r\n public InvEmail: boolean = false,\r\n public LrDtls?: LrDtl[],\r\n public FirmData?: FirmDtl,\r\n public InvData?: InvDtl,\r\n\r\n ) { }\r\n}\r\n\r\n\r\nexport class InvDtl {\r\n constructor(\r\n public InvPRefNo: number = 0,\r\n public InvMode: string = '',\r\n public InvPUnkCode: string = '',\r\n public InvType: string = 'BL',\r\n public InvBrName: string = '',\r\n public InvNo: number = 0,\r\n public InvDt: Date = new Date(),\r\n public InvExtn: string = '',\r\n public InvBpRefNo: number = 0,\r\n public InvBpName: string = '',\r\n public LrTotFrAmt: number = 0,\r\n public InvDvAmt: number = 0,\r\n public InvTotFrAmt: number = 0,\r\n public InvGstAmt: number = 0,\r\n public InvGstPer: number = 0,\r\n public InvSGstAmt: number = 0,\r\n public InvCGstAmt: number = 0,\r\n public InvIGstAmt: number = 0,\r\n public InvNetFrAmt: number = 0,\r\n public InvROAmt: number = 0,\r\n public InvAdvAmt: number = 0,\r\n public InvToPayAmt: number = 0,\r\n public InvNetBalAmt: number = 0,\r\n public InvRemark: string = '',\r\n public InvSubDt?: Date,\r\n public InvTcPRefNo: number = 0,\r\n\r\n public LrDtls?: LrDtl[],\r\n public acm?: Acm,\r\n\r\n ) { }\r\n}\r\n\r\nexport class LrAcm {\r\n constructor(\r\n public AcPRefNo: number = 0,\r\n public AcName: string = '',\r\n public AcIGstFlag: string = 'S'\r\n ) { }\r\n}\r\n\r\nexport class LrDtl {\r\n constructor(\r\n public LrPUnkCode: string = '',\r\n public LrPRefNo: number = 0,\r\n public LrNo: number = 0,\r\n public LrCtFrom: string = '',\r\n public LrCtTo: string = '',\r\n public LrCrName: string = '',\r\n public LrCnName: string = '',\r\n public LrPkgNo: number = 0,\r\n public LrMatName: string = '',\r\n public LtQty: number = 0,\r\n public ChlnQty: number = 0,\r\n public LrGrsAmt: number = 0,\r\n public LrGstAmt: number = 0,\r\n public LrNetFrAmt: number = 0,\r\n public LrAdvAmt: number = 0,\r\n public LrToPayAmt: number = 0,\r\n public LrNetBalAmt: number = 0,\r\n public IsSelected: boolean = false,\r\n\r\n\r\n ) { }\r\n}\r\n\r\nexport class FindInv {\r\n constructor(\r\n public InvBrName: string = '',\r\n public InvNo: number = 0,\r\n public InvExtn: string = ''\r\n ) { }\r\n}\r\n\r\nexport class InvLrFilter {\r\n constructor(\r\n public InvPUnkCode: string = '',\r\n public InvBpRefNo: number = 0,\r\n public DtFrom?: Date,\r\n public DtTo?: Date,\r\n ) { }\r\n}\r\n\r\nexport class InvFilter {\r\n constructor(\r\n public GrpFlag: string = '',\r\n public MenuFlag: string = '',\r\n public InvType: string = 'BL',\r\n public NoFrom: number = 0,\r\n public NoTo: number = 0,\r\n public DtFrom?: Date,\r\n public DtTo?: Date,\r\n public InvBrName: string = '',\r\n public InvExtn: string = '',\r\n public InvBpName: string = '',\r\n public InvMonth: string = '',\r\n public PtRefNo: number = 0,\r\n public IsExportExcel: boolean = false,\r\n ) { }\r\n}\r\nexport class PreVwInv {\r\n constructor(\r\n public InvFrmtName: string = '',\r\n ) { }\r\n}\r\nexport class AcAdd {\r\n constructor(\r\n public AcPRefNo: number = 0,\r\n public AcAdd1: string = '',\r\n public AcAdd2: string = '',\r\n public AcAArea: string = '',\r\n public AcCity: string = '',\r\n public AcState: string = '',\r\n public AcGstNo: string = '',\r\n public AcPhNo: string = '',\r\n public AcEmlNo: string = ''\r\n\r\n ) { }\r\n}\r\n\r\nexport class InvPrint {\r\n constructor(\r\n public InvPUnkCode: string = '',\r\n public InvIsEmail: boolean = false,\r\n public InvPrintOn: string = '',\r\n public InvPrintFormat: string = '',\r\n public RepPRefNo: number = 0\r\n ) { }\r\n}\r\n\r\nexport class InvTcDtl {\r\n constructor(\r\n public TcAtRefNo: number = 0,\r\n public TcPRefNo: number = 0,\r\n public TcPUnkCode: string = '',\r\n public TcName: string = '',\r\n public Tc1: string = '',\r\n public Tc2: string = '',\r\n public Tc3: string = '',\r\n public Tc4: string = '',\r\n public Tc5: string = '',\r\n public Tc6: string = '',\r\n public Tc7: string = '',\r\n public Tc8: string = '',\r\n public Tc9: string = '',\r\n public Tc10: string = '',\r\n ) { }\r\n}","module.exports = \"
\\n Invoice-Filter\\n \\n\\n\\n
\\n\\n
\\n
\\n
\\n \\n
\\n \\n
\\n\\n \\n
\\n \\n
\\n\\n
\\n\\n
\\n \\n
\\n \\n \\n \\n \\n
\\n\\n \\n
\\n \\n \\n \\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n
\\n\\n\\n
\\n \\n
\\n
\"","module.exports = \".myInput {\\n height: 25px !important;\\n width: 100px !important;\\n max-height: 25px !important; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvaW52b2ljZS9pbnYtZmlsdGVyL0U6XFxBbmd1bGFyXFxSZWNXZWJcXFJlY0Zyb250ZW5kL3NyY1xcYXBwXFxpbnZvaWNlXFxpbnYtZmlsdGVyXFxpbnYtZmlsdGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksd0JBQXVCO0VBQ3ZCLHdCQUF1QjtFQUN2Qiw0QkFBMkIsRUFFOUIiLCJmaWxlIjoic3JjL2FwcC9pbnZvaWNlL2ludi1maWx0ZXIvaW52LWZpbHRlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5teUlucHV0IHtcclxuICAgIGhlaWdodDogMjVweCAhaW1wb3J0YW50O1xyXG4gICAgd2lkdGg6IDEwMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBtYXgtaGVpZ2h0OiAyNXB4ICFpbXBvcnRhbnQ7XHJcbiAgICAvL3otaW5kZXg6IDEyMDAgIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Subscription } from 'rxjs/Subscription';\nimport { InvoiceService } from '../invoice.service'\nimport { InvFilter } from '../InvModel'\n\nimport { SharedService } from '../../shared/service/shared.service';\n\n@Component({\n selector: 'ngx-inv-filter',\n templateUrl: './inv-filter.component.html',\n styleUrls: ['./inv-filter.component.scss']\n})\nexport class InvFilterComponent implements OnInit, OnDestroy {\n\n BranchData = [];\n sObj: InvFilter = new InvFilter();\n\n modalHeader: string;\n spinner: boolean;\n subscriptionManager = new Subscription();\n\n constructor(private sService: InvoiceService,\n private sSharedService: SharedService,\n private activeModal: NgbActiveModal) { }\n\n ngOnInit() {\n this.getBranchData();\n }\n\n closeModal() {\n this.activeModal.close();\n }\n\n getBranchData() {\n this.sService.getBranch().subscribe((data) => {\n this.BranchData = data['data'];\n }, (err) => { });\n }\n\n findInvData() {\n\n if (this.sObj.DtFrom != null) {\n let dt1: Date;\n dt1 = new Date(this.sObj.DtFrom);\n this.sObj.DtFrom = this.sSharedService.utcDate(dt1);\n }\n\n if (this.sObj.DtTo != null) {\n let dt1: Date;\n dt1 = new Date(this.sObj.DtTo);\n this.sObj.DtTo = this.sSharedService.utcDate(dt1);\n }\n\n if (this.sObj.NoFrom)\n this.sObj.NoFrom = Number(this.sObj.NoFrom);\n else\n this.sObj.NoFrom = 0;\n if (this.sObj.NoTo)\n this.sObj.NoTo = Number(this.sObj.NoTo);\n else\n this.sObj.NoTo = 0;\n\n this.activeModal.close(this.sObj);\n }\n\n ngOnDestroy() {\n if (this.subscriptionManager) {\n this.subscriptionManager.unsubscribe();\n }\n }\n}\n","module.exports = \"
\\n Invoice-Print\\n \\n
\\n\\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n
\\n\\n
\\n \\n
\\n
\"","module.exports = \".myInput {\\n height: 25px !important;\\n width: 100px !important;\\n max-height: 25px !important; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvaW52b2ljZS9pbnYtZm9ybS9FOlxcQW5ndWxhclxcUmVjV2ViXFxSZWNGcm9udGVuZC9zcmNcXGFwcFxcaW52b2ljZVxcaW52LWZvcm1cXGludi1wcmludC1kaWFsb2cuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSx3QkFBdUI7RUFDdkIsd0JBQXVCO0VBQ3ZCLDRCQUEyQixFQUU5QiIsImZpbGUiOiJzcmMvYXBwL2ludm9pY2UvaW52LWZvcm0vaW52LXByaW50LWRpYWxvZy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5teUlucHV0IHtcclxuICAgIGhlaWdodDogMjVweCAhaW1wb3J0YW50O1xyXG4gICAgd2lkdGg6IDEwMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBtYXgtaGVpZ2h0OiAyNXB4ICFpbXBvcnRhbnQ7XHJcbiAgICAvL3otaW5kZXg6IDEyMDAgIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Subscription } from 'rxjs/Subscription';\nimport { InvPrint } from '../InvModel'\n\n@Component({\n selector: 'ngx-inv-print-dialog',\n templateUrl: './inv-print-dialog.component.html',\n styleUrls: ['./inv-print-dialog.component.scss']\n})\nexport class InvPrintDialogComponent implements OnInit, OnDestroy {\n\n sObj: InvPrint = new InvPrint();\n\n modalHeader: string;\n spinner: boolean;\n subscriptionManager = new Subscription();\n\n constructor(\n private activeModal: NgbActiveModal) { }\n\n ngOnInit() {\n }\n\n ngOnDestroy() {\n if (this.subscriptionManager) {\n this.subscriptionManager.unsubscribe();\n }\n }\n\n closeModal() {\n this.activeModal.close();\n }\n\n findInvData() {\n this.activeModal.close(this.sObj);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { environment } from '../../environments/environment';\nimport { InvDtl, LrDtl, LrAcm, InvTcDtl } from './InvModel';\nimport { AppConfig } from '../app.config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InvoiceService {\n\n constructor(private http: HttpClient) { }\n\n getCmpLh() {\n return this.http.get(environment.HOST_URL + AppConfig.GetCmpLh);\n }\n\n // pdfNewInvoice(sObj) {\n // var url = environment.HOST_URL + AppConfig.MakePdfInvoice;\n // const httpOptions = {\n // responseType: 'blob' as 'json'\n // };\n // return this.http.post(url, sObj);\n // }\n\n\n pdfInvoice(sObj) {\n var url = environment.HOST_URL + AppConfig.pdfFreightInvoice;\n const httpParam = new HttpParams();\n let parameters: any = {\n params: httpParam,\n }\n parameters.responseType = 'application/json';\n // const httpOptions = {\n // responseType: 'blob' as 'json'\n // };\n //return this.http.get(url, parameters);\n\n return this.http.post<[any]>(url, sObj, parameters);\n\n }\n\n mailInvoice(sObj) {\n var url = environment.HOST_URL + AppConfig.pdfFreightInvoice;\n const httpParam = new HttpParams();\n let parameters: any = {\n params: httpParam,\n }\n parameters.responseType = 'application/json';\n // const httpOptions = {\n // responseType: 'blob' as 'json'\n // };\n return this.http.post(url, sObj, parameters);\n }\n\n GetTCForFront() {\n return this.http.get(environment.HOST_URL + AppConfig.GetTCForFront);\n }\n downloadDocumentLink(documentName: string, url: string) {\n const link = document.createElement('a');\n link.href = url;\n documentName = \"_\" + new Date().getTime() + \".pdf\"\n link.download = documentName;\n link.click();\n link.remove();\n }\n\n getServerPath() {\n return this.http.get(environment.HOST_URL + AppConfig.getServerPath.concat('/?id=Photo1'));\n }\n\n\n getBranch() {\n return this.http.get<[]>(environment.HOST_URL + AppConfig.BranchList);\n }\n getAcName() {\n return this.http.get(environment.HOST_URL + AppConfig.getAcmListForInv);\n //GetAcmListForCombo\n }\n\n getAcmListForCombo(sType) {\n return this.http.get<[any]>(environment.HOST_URL + AppConfig.getAcmListForCombo.concat('/?id=').concat(sType));\n }\n\n\n getInvoiceByInvNo(sObj) {\n return this.http.post(environment.HOST_URL + AppConfig.getInvByInvNo, sObj);\n }\n\n getInvoiceByCode(sId) {\n return this.http.get(environment.HOST_URL + AppConfig.getInvByCode.concat('/?id=').concat(sId));\n }\n\n getLrListByInvCode(sObj) {\n return this.http.post(environment.HOST_URL + AppConfig.getLrListByInvCode, sObj);\n }\n\n\n // getLrListByBpNameZZ(sObj) {\n // return this.http.post(environment.HOST_URL + AppConfig.getLrListByBpNameZZ, sObj);\n // }\n\n createInvoice(sObj: InvDtl) {\n const httpParam = new HttpParams().append('branch', localStorage.getItem('tpsBranch'));\n return this.http.post(environment.HOST_URL + AppConfig.saveInv, sObj, { params: httpParam });\n }\n\n updateInvoice(params: InvDtl) {\n return this.http.post(environment.HOST_URL + AppConfig.updateInv, params);\n }\n\n deleteInvoice(sUnPUnkCode) {\n return this.http.get(environment.HOST_URL + AppConfig.deleteInv + \"/?id=\".concat(sUnPUnkCode));\n }\n\n getInvSummary(sObj, isExportToExcel: boolean = false) {\n var sUrl = environment.HOST_URL + AppConfig.getInvSummary;\n\n const httpParam = new HttpParams();\n let parameters: any = {\n params: httpParam\n }\n if (isExportToExcel) {\n parameters.responseType = 'blob' as 'json'\n }\n return this.http.post<[any]>(sUrl, sObj, parameters);\n\n }\n\n getInvGstRegister(sObj, isExportToExcel: boolean = false) {\n var sUrl = environment.HOST_URL + AppConfig.getInvGstSummary;\n\n const httpParam = new HttpParams();\n let parameters: any = {\n params: httpParam\n }\n if (isExportToExcel) {\n parameters.responseType = 'blob' as 'json'\n }\n return this.http.post<[any]>(sUrl, sObj, parameters);\n\n }\n\n saveInvTc(sObj: InvTcDtl) {\n return this.http.post(environment.HOST_URL + AppConfig.saveInvTc, sObj);\n }\n\n updateInvTc(params: InvTcDtl) {\n return this.http.post(environment.HOST_URL + AppConfig.updateInvTc, params);\n }\n\n getInvTcList() {\n return this.http.get<[]>(environment.HOST_URL + AppConfig.getInvTcList);\n }\n\n deleteInvTc(sTcPUnkCode) {\n return this.http.get(environment.HOST_URL + AppConfig.deleteInvTc + \"/?id=\".concat(sTcPUnkCode));\n }\n\n getInvTc(sTcPUnkCode) {\n return this.http.get(environment.HOST_URL + AppConfig.getInvTc + \"/?id=\".concat(sTcPUnkCode));\n }\n\n\n}\n","\r\nexport class LrDtl {\r\n constructor(\r\n public LrMode: string = '',\r\n public LrLoadType: string = '',\r\n public LrPRefNo: number = 0,\r\n public LrPUnkCode: string = '',\r\n public LrToPay: string = '',\r\n public LrBrName: string = '',\r\n public LrNo: number = 0,\r\n public LrExtn: string = '',\r\n public LrLdDt?: Date,\r\n public tLrLdDt: string = '',\r\n public DvDt?: Date,\r\n public LrTm: string = '',\r\n public LrBpRefNo: number = 0,\r\n public LrBpName: string = '',\r\n\r\n public ChFUnkCode: string = '',\r\n public FrFUnkCode: string = '',\r\n public MrFUnkCode: string = '',\r\n public HdFUnkCode: string = '',\r\n public ClFUnkCode: string = '',\r\n\r\n public LrCrName: string = '',\r\n public LrCnName: string = '',\r\n public LrCtFrom: string = '',\r\n public LrCtTo: string = '',\r\n public LrMatName: string = '',\r\n public LrMatAmt: Number = 0,\r\n public LrPkgNo: number = 0,\r\n public LrPkgType: string = '',\r\n\r\n public LrInvNo: string = '',\r\n public LrInvDt: string = '',\r\n\r\n public LrShipNo: string = '',\r\n public LrShipDt: string = '',\r\n public LrGpNo: string = '',\r\n\r\n public LrCntrNo: string = '',\r\n public LrLdWt: number = 0,\r\n public LrChrgWt: number = 0,\r\n public LrULdWt: number = 0,\r\n public LrShrtWt: number = 0,\r\n public LrFrRate: number = 0,\r\n public LrFrAmtCal: string = '',\r\n public LrGstBy: string = '',\r\n public LrToBrName: string = '',\r\n public LrRemark: string = '',\r\n\r\n public LrDelType: string = '',\r\n public LrHDel: string = '',\r\n public LrCollection: string = '',\r\n public LrPvtMark: string = '',\r\n public LrEFrom: string = '',\r\n\r\n public LrVhNo: string = '',\r\n public LrOnAtch: string = '',\r\n public LrVhCat: string = '',\r\n public LrOdrNo: string = '',\r\n public LrNetKM: number = 0,\r\n\r\n public LrFrghtAmt: number = 0,\r\n public LrChrgAmt: number = 0,\r\n public LrLdAmt: number = 0,\r\n public LrColAmt: number = 0,\r\n public LrDrdAmt: number = 0,\r\n\r\n public LrULdAmt: number = 0,\r\n public LrDetAmt: number = 0,\r\n public LrDetPer: number = 0,\r\n public LrDetDays: number = 0,\r\n public LrChrgAmt8: number = 0,\r\n public LrChrgAmt9: number = 0,\r\n public LrOChAmt: number = 0,\r\n public LrTotFrAmt: number = 0,\r\n\r\n public LrGstPer: number = 0,\r\n public LrGstAmt: number = 0,\r\n\r\n public LrNetFrAmt: number = 0,\r\n\r\n public DvULdAmt: number = 0,\r\n public DvDetAmt: number = 0,\r\n public DvOChAmt: number = 0,\r\n public DlvAmt: number = 0,\r\n\r\n\r\n public LrAdvAmt: number = 0,\r\n public LrToPayAmt: number = 0,\r\n public LrNetBalAmt: number = 0,\r\n\r\n public DvNo: number = 0,\r\n public DvMonth: string = '',\r\n public DvYrMn: string = '',\r\n public LrPodHand: string = '',\r\n\r\n public ChlnPRefNo: number = 0,\r\n public ChBkRefNo: number = 0,\r\n public ChBkName: string = '',\r\n public ChDrvName: string = '',\r\n public ChNo: number = 0,\r\n public ChExtn: string = '',\r\n public ChOnAtch: string = '',\r\n public UnLUnkCode: string = '',\r\n public LrType: string = 'LR',\r\n public ChType: string = 'CH',\r\n public CrFUnkCode: string = '',\r\n public LrMUnkCode: string = '',\r\n public CrDUnkCode: string = '',\r\n public DrFUnkCode: string = ''\r\n ) { }\r\n}\r\n\r\nexport class LrAcm {\r\n constructor(\r\n public AcPRefNo: number = 0,\r\n public AcName: string = '',\r\n public AcPtType: string = '',\r\n public AcIGstFlag: string = '',\r\n public AcPUnkCode: string = '',\r\n\r\n ) { }\r\n}\r\n\r\nexport class LrFind {\r\n constructor(\r\n public LrPUnkCode: string = '',\r\n public LrBrName: string = '',\r\n public LrNo: number = 0,\r\n public LrExtn: string = ''\r\n ) { }\r\n}\r\n\r\n\r\n\r\nexport class LrFilter {\r\n constructor(\r\n public GrpFlag: string = '', //Pt(Party-wise) Br(Branch-wise) Mn(Month-wise)\r\n public MenuFlag: string = 'Sm', //Sm(Summary) Mn(Month-wise) Det(Detail)n\r\n public LrNoFrom: number = 0,\r\n public LrNoTo: Number = 0,\r\n public DtFrom: Date = null,\r\n public DtTo: Date = null,\r\n public LrBrName: string = '',\r\n public LrToBrName: string = '',\r\n public LrExtn: string = '',\r\n public LrBpName: string = '',\r\n public LrBpRefNo: number = 0,\r\n public LrMonth: string = '',\r\n public LrCtTo: string = '',\r\n public LrVhNo: string = '',\r\n public LrPending: string = '',\r\n public LrToPay: string = '',\r\n public LrType: string = '',\r\n public LrBkType: string = 'BK', //Booking-> BK, InComing -> IN\r\n public IsExportExcel: boolean = false,\r\n public IsExportPdf: boolean = false,\r\n public VwFRefNo: number = 0,\r\n public GrpName: string = 'LR Register'\r\n\r\n ) { }\r\n}\r\n\r\nexport class VhCatDtl {\r\n constructor(\r\n public VhCatPRefNo: number = 0,\r\n public VhCatName: string = '',\r\n ) { }\r\n}\r\n\r\nexport class LrCharge {\r\n constructor(\r\n public ChName: string = '',\r\n public ChVisible: string = '',\r\n //public ChFlag: boolean = true,\r\n public ChProp: string = '',\r\n ) { }\r\n}\r\n\r\nexport class LrStatus {\r\n constructor(\r\n\r\n public LrPUnkCode: string = '',\r\n public LrBrName: string = '',\r\n public LrNo: number = 0,\r\n public LrExtn: string = '',\r\n public LrLdDt?: Date,\r\n public tLrLdDt: string = '',\r\n\r\n public ChFUnkCode: string = '',\r\n public FrFUnkCode: string = '',\r\n public MrFUnkCode: string = '',\r\n public HdFUnkCode: string = '',\r\n public ClFUnkCode: string = '',\r\n\r\n public LrCrName: string = '',\r\n public LrCnName: string = '',\r\n public LrCtFrom: string = '',\r\n public LrCtTo: string = '',\r\n public LrMatName: string = '',\r\n public LrPkgNo: number = 0,\r\n\r\n public LrInvNo: string = '',\r\n public LrChrgWt: number = 0,\r\n public LrToBrName: string = '',\r\n\r\n public LrPvtMark: string = '',\r\n public LrEFrom: string = '',\r\n\r\n public DvNo: number = 0,\r\n ) { }\r\n\r\n\r\n}","module.exports = \"
\\n {{ modalHeader }}\\n \\n
\\n\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n \\n
\\n
\"","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Subscription } from 'rxjs/Subscription';\nimport { StationDtl } from '../masterModel';\nimport { MastersService } from '../masters.service';\nimport { NbToastrService } from '@nebular/theme';\nimport { CommonService } from '../../shared/service/common.service';\n\n@Component({\n selector: 'ngx-ct-create',\n templateUrl: './ct-create.component.html',\n styles: []\n})\nexport class CtCreateComponent implements OnInit, OnDestroy {\n\n modalHeader: string;\n spinner: boolean;\n subscriptionManager = new Subscription();\n\n sObj: StationDtl = new StationDtl();\n OldName: string;\n StateData = [];\n\n constructor(\n private activeModal: NgbActiveModal,\n private sMasterService: MastersService,\n private sToastrService: NbToastrService,\n private sCommonService: CommonService\n\n ) { }\n\n ngOnInit() {\n this.getStateList();\n if (this.sObj.StationPRefNo) {\n this.OldName = this.sObj.Station;\n }\n }\n\n getStateList() {\n this.spinner = true;\n this.subscriptionManager.add(this.sCommonService.getState().subscribe((res) => {\n this.spinner = false;\n if (res == null) return;\n if (res['data'] == null) return;\n this.StateData = res['data'];\n }, (err) => {\n this.spinner = false;\n }));\n }\n\n\n\n closeModal() {\n this.activeModal.close();\n }\n\n saveStationData() {\n if (this.sObj.StationPRefNo) {\n this.updateStationObj();\n } else {\n this.addStationObj();\n }\n }\n\n addStationObj() {\n this.spinner = true;\n this.subscriptionManager.add(this.sMasterService.addStation(this.sObj).subscribe((res) => {\n this.activeModal.close(res);\n this.spinner = false;\n }, (err) => {\n this.activeModal.close();\n this.spinner = false;\n\n }));\n }\n\n\n updateStationObj() {\n\n this.spinner = true;\n this.subscriptionManager.add(this.sMasterService.updateStation(this.sObj).subscribe((res) => {\n if (res != null) {\n if (res['StatusCode'] == 501) {\n this.sObj.Station = this.OldName;\n }\n\n }\n this.activeModal.close(res);\n this.spinner = false;\n }, (err) => {\n this.spinner = false;\n }));\n }\n\n ngOnDestroy() {\n if (this.subscriptionManager) {\n this.subscriptionManager.unsubscribe();\n }\n }\n}\n","export class BranchDtl {\r\n constructor(\r\n public BrPRefNo: number = 0,\r\n public BrName: string = '',\r\n public BrAbbr: string = '',\r\n public BrCsAcRefNo: number = 0,\r\n public BrCsOpBal: number = 0,\r\n public BrCsCrDr: string = '',\r\n public BrAdd1: string = '',\r\n public BrAdd2: string = '',\r\n public BrPhNo: string = '',\r\n ) { }\r\n}\r\n\r\nexport class StationDtl {\r\n constructor(\r\n public StationPRefNo: Number = 0,\r\n public Station: string = '',\r\n public State: string = ''\r\n ) { }\r\n}\r\n\r\nexport class MatDtl {\r\n constructor(\r\n public MatPRefNo: number = 0,\r\n public MatName: string = '',\r\n public MatRate: number = 0,\r\n public MatHsn: string = '',\r\n ) { }\r\n}\r\n\r\nexport class PkTypeDtl {\r\n constructor(\r\n public PkgPRefNo: number = 0,\r\n public PkgType: string = '',\r\n public OldPkgType: string = '',\r\n public PkgUnkCode: string = '',\r\n ) { }\r\n}\r\n\r\nexport class DocDtl {\r\n constructor(\r\n public DocPRefNo: number = 0,\r\n public DocName: string = '',\r\n public DocGrpName: string = '',\r\n ) { }\r\n}\r\n\r\nexport class UnitDtl {\r\n constructor(\r\n public UnitPRefNo: number = 0,\r\n public UnitName: string = '',\r\n ) { }\r\n}","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { environment } from '../../environments/environment';\nimport { AppConfig } from '../app.config';\nimport { StationDtl, MatDtl, BranchDtl, PkTypeDtl, DocDtl, UnitDtl } from '../masters/masterModel';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MastersService {\n\n constructor(\n private http: HttpClient,\n ) { }\n\n getBranchList() {\n var url = environment.HOST_URL + AppConfig.BranchList;\n return this.http.get(url);\n }\n\n addBranch(params: BranchDtl) {\n return this.http.post(environment.HOST_URL + AppConfig.BranchAdd, params);\n }\n\n updateBranch(params: BranchDtl) {\n return this.http.post(environment.HOST_URL + AppConfig.BranchUpdate, params);\n }\n\n deleteBranch(branchId) {\n var url = environment.HOST_URL + AppConfig.BranchDelete.concat('/?id=').concat(branchId);\n return this.http.get(url);\n }\n\n\n getStationList() {\n return this.http.get(environment.HOST_URL + AppConfig.getStationList);\n }\n\n addStation(params: StationDtl) {\n return this.http.post(environment.HOST_URL + AppConfig.addStation, params);\n }\n\n updateStation(params: StationDtl) {\n return this.http.post(environment.HOST_URL + AppConfig.updateStation, params);\n }\n\n deleteStation(cityId) {\n return this.http.get(environment.HOST_URL + AppConfig.deleteStation.concat('/?id=').concat(cityId));\n }\n\n\n getMaterialList() {\n return this.http.get(environment.HOST_URL + AppConfig.getMatList);\n }\n\n addMaterial(params: MatDtl) {\n return this.http.post(environment.HOST_URL + AppConfig.addMat, params);\n }\n\n updateMaterial(params: MatDtl) {\n return this.http.post(environment.HOST_URL + AppConfig.updateMat, params);\n }\n\n deleteMaterial(materialId) {\n return this.http.get(environment.HOST_URL + AppConfig.deleteMat.concat('/?id=').concat(materialId));\n }\n\n\n\n\n getPackingList() {\n return this.http.get(environment.HOST_URL + AppConfig.getPackingList);\n }\n\n addPacking(params: PkTypeDtl) {\n return this.http.post(environment.HOST_URL + AppConfig.addPacking, params);\n }\n\n updatePacking(params: PkTypeDtl) {\n return this.http.post(environment.HOST_URL + AppConfig.updatePacking, params);\n }\n\n deletePacking(materialId) {\n return this.http.get(environment.HOST_URL + AppConfig.deletePacking.concat('/?id=').concat(materialId));\n }\n\n getDocGrpList() {\n return this.http.get(environment.HOST_URL + AppConfig.getDocumentGrpList);\n }\n\n getDocList() {\n return this.http.get(environment.HOST_URL + AppConfig.getDocList);\n }\n\n addDoc(params: DocDtl) {\n return this.http.post(environment.HOST_URL + AppConfig.addDoc, params);\n }\n\n updateDoc(params: DocDtl) {\n return this.http.post(environment.HOST_URL + AppConfig.updateDoc, params);\n }\n\n deleteDoc(sId) {\n return this.http.get(environment.HOST_URL + AppConfig.deleteDoc.concat('/?id=').concat(sId));\n }\n\n\n\n\n\n getUnitList() {\n return this.http.get(environment.HOST_URL + AppConfig.getUnitList);\n }\n\n addUnit(params: UnitDtl) {\n return this.http.post(environment.HOST_URL + AppConfig.addUnit, params);\n }\n\n updateUnit(params: UnitDtl) {\n return this.http.post(environment.HOST_URL + AppConfig.updateUnit, params);\n }\n\n deleteUnit(materialId) {\n return this.http.get(environment.HOST_URL + AppConfig.deleteUnit.concat('/?id=').concat(materialId));\n }\n\n\n\n}\n","module.exports = \"
\\n {{ modalHeader }}\\n \\n
\\n\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\"","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Subscription } from 'rxjs/Subscription';\nimport { MatDtl } from '../masterModel';\nimport { MastersService } from '../masters.service';\nimport { NbToastrService } from '@nebular/theme';\n\n\n@Component({\n selector: 'ngx-mat-create',\n templateUrl: './mat-create.component.html',\n styles: []\n})\nexport class MatCreateComponent implements OnInit, OnDestroy {\n\n modalHeader: string;\n spinner: boolean;\n subscriptionManager = new Subscription();\n\n sObj: MatDtl = new MatDtl();\n OldName: string;\n MatData = [];\n\n constructor(\n private activeModal: NgbActiveModal,\n private sMasterService: MastersService,\n private sToastrService: NbToastrService\n ) { }\n\n ngOnInit() {\n if (this.sObj.MatPRefNo) {\n this.OldName = this.sObj.MatName;\n }\n }\n\n closeModal() {\n this.activeModal.close();\n }\n\n saveMatData() {\n\n if (this.sObj.MatName != \"\") {\n if (this.sObj.MatPRefNo) {\n {\n this.updateMatObj();\n }\n } else {\n this.addMatObj();\n }\n }\n }\n\n addMatObj() {\n this.spinner = true;\n this.subscriptionManager.add(this.sMasterService.addMaterial(this.sObj).subscribe((res) => {\n if (res['StatusCode'] == 501) {\n this.sToastrService.danger('Duplicate Material', 'Material Details');\n this.activeModal.close(null);\n }\n else {\n\n this.activeModal.close(res['data']);\n this.spinner = false;\n }\n }, (err) => {\n this.spinner = false;\n }));\n }\n\n updateMatObj() {\n this.spinner = true;\n this.subscriptionManager.add(this.sMasterService.updateMaterial(this.sObj).subscribe((res) => {\n if (res['StatusCode'] == 501) {\n this.sObj.MatName = this.OldName;\n this.sToastrService.danger('Duplicate Material', 'Material Details');\n this.activeModal.close(null);\n }\n else {\n this.activeModal.close(res['data']);\n }\n this.spinner = false;\n }, (err) => {\n this.spinner = false;\n }));\n }\n\n ngOnDestroy() {\n if (this.subscriptionManager) {\n this.subscriptionManager.unsubscribe();\n }\n }\n\n\n\n}\n","module.exports = \"
\\n {{ modalHeader }}\\n \\n
\\n\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n\\n
\\n \\n
\\n
\"","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Subscription } from 'rxjs/Subscription';\nimport { UnitDtl } from '../masterModel';\nimport { MastersService } from '../masters.service';\nimport { NbToastrService } from '@nebular/theme';\n\n\n@Component({\n selector: 'ngx-unit-create',\n templateUrl: './unit-create.component.html',\n styles: []\n})\nexport class UnitCreateComponent implements OnInit {\n\n modalHeader: string;\n spinner: boolean;\n subscriptionManager = new Subscription();\n\n sObj: UnitDtl = new UnitDtl();\n OldName: string;\n MatData = [];\n\n constructor(\n private activeModal: NgbActiveModal,\n private sMasterService: MastersService,\n private sToastrService: NbToastrService\n ) { }\n\n ngOnInit() {\n if (this.sObj.UnitPRefNo) {\n this.OldName = this.sObj.UnitName;\n }\n }\n\n closeModal() {\n this.activeModal.close();\n }\n\n saveUnitData() {\n\n if (this.sObj.UnitName != \"\") {\n if (this.sObj.UnitPRefNo) {\n {\n this.updateUnitObj();\n }\n } else {\n this.addUnitObj();\n }\n }\n }\n\n addUnitObj() {\n this.spinner = true;\n this.subscriptionManager.add(this.sMasterService.addUnit(this.sObj).subscribe((res) => {\n if (res['StatusCode'] == 501) {\n this.sToastrService.danger('Duplicate Unit', 'Unit Details');\n this.activeModal.close(null);\n }\n else {\n\n this.activeModal.close(res['data']);\n this.spinner = false;\n }\n }, (err) => {\n this.spinner = false;\n }));\n }\n\n updateUnitObj() {\n this.spinner = true;\n this.subscriptionManager.add(this.sMasterService.updateUnit(this.sObj).subscribe((res) => {\n if (res['StatusCode'] == 501) {\n this.sObj.UnitName = this.OldName;\n this.sToastrService.danger('Duplicate Unit', 'Unit Details');\n this.activeModal.close(null);\n }\n else {\n this.activeModal.close(res['data']);\n }\n this.spinner = false;\n }, (err) => {\n this.spinner = false;\n }));\n }\n\n ngOnDestroy() {\n if (this.subscriptionManager) {\n this.subscriptionManager.unsubscribe();\n }\n }\n\n}\n","module.exports = \"\\r\\n \\r\\n
\\r\\n

Select Branch

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Subscription } from 'rxjs/Subscription';\r\n\r\nimport { Branch, UserBrDtl } from '../../../master-management/master-management.model';\r\nimport { BranchService } from './branch.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AppComponent } from '../../../app.component';\r\nimport { UserInfo } from '../../../@theme/components/header/CmpModel'\r\nimport { UsBrDtl } from '../../../user-management/userModel';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'ngx-branch-selection',\r\n templateUrl: './branch-selection.component.html',\r\n})\r\n\r\nexport class BranchSelectionComponent implements OnInit, OnDestroy {\r\n\r\n subscriptionManager = new Subscription();\r\n spinner: boolean;\r\n\r\n branchDropdownList: UserBrDtl[] = [];\r\n selectedBranch: string;\r\n user = new UserInfo();\r\n\r\n constructor(\r\n private branchService: BranchService,\r\n private router: Router,\r\n private app: AppComponent,\r\n private route: ActivatedRoute\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.getBranchDropdownList();\r\n\r\n this.route.queryParams.subscribe(params => {\r\n this.user.name = params[\"name\"];\r\n this.user.picture = 'src\\assets\\images\\nick.png';\r\n });\r\n\r\n }\r\n\r\n getBranchDropdownList() {\r\n this.subscriptionManager.add(this.branchService.getUserBranch().subscribe((res) => {\r\n if (res != null)\r\n this.branchDropdownList = res['data'];\r\n }, (err) => {\r\n }));\r\n }\r\n\r\n selectBranch() {\r\n this.spinner = true;\r\n localStorage.setItem('tpsBranch', this.selectedBranch);\r\n this.app.gLoginBranch = this.selectedBranch;\r\n this.router.navigate(['/home'], { queryParams: this.user });\r\n this.spinner = false;\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscriptionManager) {\r\n this.subscriptionManager.unsubscribe();\r\n }\r\n }\r\n LogoutMe() {\r\n localStorage.removeItem('tpsToken');\r\n localStorage.removeItem('tpsBranch');\r\n this.router.navigate(['/auth']);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { Branch, UserBrDtl } from '../../../master-management/master-management.model';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { AppConfig } from '../../../app.config';\r\nimport * as jwt_decode from 'jwt-decode';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\nexport class BranchService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n ) { }\r\n\r\n getBranchDropdownList() {\r\n return this.http.get(environment.HOST_URL + AppConfig.RBRANCH);\r\n }\r\n\r\n getUserBranch() {\r\n var token = localStorage.getItem('tpsToken');\r\n var decode = jwt_decode(token);\r\n var UsRefNo = decode.A2;\r\n return this.http.get(environment.HOST_URL + AppConfig.UserBrList.concat('/?id=').concat(UsRefNo));\r\n }\r\n\r\n}\r\n","module.exports = \"\\n \\n \\n \\n {{ data.AcName }}\\n \\n \\n \\n\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'ngx-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss']\n})\nexport class DropdownComponent implements OnInit {\n\n @Input() dropdownList = [];\n @Output() dropdown = new EventEmitter();\n\n constructor() { }\n\n ngOnInit() {\n }\n\n selectData(data) {\n this.dropdown.emit(data);\n }\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ngx-err-msg',\r\n template: `
{{errorMessage}}
`,\r\n})\r\n\r\nexport class ErrMsgComponent implements OnInit {\r\n\r\n @Input() control: FormControl;\r\n @Input() fieldName: FormControl;\r\n\r\n constructor() { }\r\n\r\n get errorMessage() {\r\n for (const propertyName in this.control.errors) {\r\n if (this.control.errors.hasOwnProperty(propertyName) && this.control.touched) {\r\n return this.getValidatorErrorMessage(propertyName, this.control.errors[propertyName]);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n getValidatorErrorMessage(validatorName: string, validatorValue?: any) {\r\n const config = {\r\n 'required': this.fieldName + ' is required',\r\n 'appPhoneValidate': this.fieldName + ' is invalid',\r\n 'appEmailValidate': this.fieldName + ' is invalid',\r\n 'appPasswordValidate': this.fieldName + ' must containt 8 characters, capital letters, ' +\r\n 'lowercase, numbers and special character.',\r\n 'minlength': `minnimum length ${validatorValue.requiredLength}`,\r\n 'min': `minumum value ${validatorValue.min}`,\r\n 'max': `maximum value ${validatorValue.max}`,\r\n 'matchPassword': this.fieldName + ' is mismatched',\r\n 'appEqualvalidate': this.fieldName + ' is mismatched',\r\n 'appWebValidate': this.fieldName + ' is invalid',\r\n };\r\n\r\n return config[validatorName];\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","export const ERRORCODES = {\r\n 1003: 'Invalid Client Id',\r\n 5000: 'Password can not update',\r\n 5001: 'Uniq id is missing',\r\n 5002: 'Invalid password',\r\n 5003: 'User not found',\r\n 5004: 'Name or email is already exist',\r\n 5005: 'Name is already exist',\r\n\r\n 601: 'Account Used in LR',\r\n 602: 'Account Used in Challan',\r\n 603: 'Account Used in Invoice',\r\n 604: 'Account Used in Voucher',\r\n 605: 'Account Used in MR',\r\n 606: 'Account Used in LHC',\r\n};\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'input[numbersOnly]'\r\n})\r\nexport class NumberDirective {\r\n\r\n constructor(private _el: ElementRef) { }\r\n\r\n @HostListener('input', ['$event']) onInputChange(event) {\r\n const initalValue = this._el.nativeElement.value;\r\n this._el.nativeElement.value = initalValue.replace(/[^0-9]*/g, '');\r\n if ( initalValue !== this._el.nativeElement.value) {\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n}\r\n\r\n@Directive({\r\n selector: 'input[datesOnly]'\r\n})\r\nexport class DateDirective {\r\n\r\n constructor(private _el: ElementRef) { }\r\n\r\n @HostListener('input', ['$event']) onInputChange(event) {\r\n const initalValue = this._el.nativeElement.value;\r\n this._el.nativeElement.value = initalValue.replace(/[^0-9/-]*/g, '');\r\n if ( initalValue !== this._el.nativeElement.value) {\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n}\r\n\r\n@Directive({\r\n selector: 'input[numDotsOnly]'\r\n})\r\nexport class NumDotDirective {\r\n\r\n constructor(private _el: ElementRef) { }\r\n\r\n @HostListener('input', ['$event']) onInputChange(event) {\r\n const initalValue = this._el.nativeElement.value;\r\n this._el.nativeElement.value = initalValue.replace(/[^0-9.-]*/g, '');\r\n if ( initalValue !== this._el.nativeElement.value) {\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n}\r\n\r\n@Directive({\r\n selector: 'input[uppercase]'\r\n})\r\nexport class UpperCaseDirective {\r\n\r\n constructor(private _el: ElementRef) { }\r\n\r\n @HostListener('input', ['$event']) onInputChange(event) {\r\n const initalValue = this._el.nativeElement.value;\r\n this._el.nativeElement.value = initalValue.replace(/[^0-9A-Z/.-]*/g, '');\r\n if ( initalValue !== this._el.nativeElement.value) {\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n}\r\n","import { ElementRef, HostListener, Directive, forwardRef, Attribute } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, AbstractControl, ValidatorFn, FormControl } from '@angular/forms';\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[appIsNumber]',\r\n})\r\n\r\nexport class IsNumberDirective {\r\n private regex: RegExp = new RegExp(/^-?[0-9]+(\\.[0-9]*){0,1}$/g);\r\n private specialKeys: Array = ['Backspace', 'Tab', 'End', 'Home', '-'];\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent) {\r\n if (this.specialKeys.indexOf(event.key) !== -1) {\r\n return;\r\n }\r\n const current: string = this.el.nativeElement.value;\r\n const next: string = current.concat(event.key);\r\n if (next && !String(next).match(this.regex)) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[appEmailValidate][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: EmailValidator, multi: true },\r\n ],\r\n})\r\n\r\nexport class EmailValidator implements Validator {\r\n validator: ValidatorFn;\r\n constructor() {\r\n this.validator = validateEmailFactory();\r\n }\r\n validate(c: FormControl) {\r\n return this.validator(c);\r\n }\r\n}\r\n\r\nfunction validateEmailFactory(): ValidatorFn {\r\n return (c: AbstractControl) => {\r\n if (c.value) {\r\n // tslint:disable-next-line:max-line-length\r\n if (c.value.match(/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/)) {\r\n return null;\r\n } else {\r\n return {\r\n appEmailValidate: true,\r\n };\r\n }\r\n }\r\n };\r\n}\r\n\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[appPhoneValidate][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: PhoneValidator, multi: true },\r\n ],\r\n})\r\n\r\nexport class PhoneValidator implements Validator {\r\n validator: ValidatorFn;\r\n constructor() {\r\n this.validator = validatePhoneFactory();\r\n }\r\n validate(c: FormControl) {\r\n return this.validator(c);\r\n }\r\n}\r\n\r\nfunction validatePhoneFactory(): ValidatorFn {\r\n return (c: AbstractControl) => {\r\n if (c.value) {\r\n if (c.value.match(/^[89]\\d{8}$/) || c.value.match(/^[6]\\d{8}$/)) {\r\n return null;\r\n } else {\r\n return {\r\n appPhoneValidate: true,\r\n };\r\n }\r\n }\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SharedService } from './shared.service';\r\nimport { CanActivateChild } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthGuardService {\r\n\r\n constructor(\r\n private sharedService: SharedService,\r\n ) { }\r\n\r\n canActivate(): boolean {\r\n if (this.sharedService.isLoggedIn()) {\r\n return true;\r\n } else {\r\n this.sharedService.logout();\r\n return false;\r\n }\r\n }\r\n\r\n}\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthGuardChildService implements CanActivateChild {\r\n\r\n constructor(\r\n private sharedService: SharedService,\r\n ) { }\r\n\r\n canActivateChild(): boolean {\r\n if (this.sharedService.isLoggedIn()) {\r\n return true;\r\n } else {\r\n this.sharedService.logout();\r\n return false;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs/BehaviorSubject';\nimport { DahboardCounter, FrmShort } from '../shared.model';\nimport { environment } from '../../../environments/environment';\nimport { HttpClient } from '@angular/common/http';\nimport { AppConfig } from '../../app.config';\nimport { OptionInv } from '../../user-management/userModel';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CommonService {\n\n constructor(\n private http: HttpClient\n ) { }\n\n getMaterial() {\n return this.http.get<[]>(environment.HOST_URL + AppConfig.getMatList);\n }\n\n getUnit() {\n return this.http.get<[]>(environment.HOST_URL + AppConfig.getUnitList);\n }\n\n getCityList() {\n return this.http.get<[]>(environment.HOST_URL + AppConfig.getStationList);\n }\n\n getDrvList() {\n return this.http.get<[]>(environment.HOST_URL + AppConfig.getDrvList);\n }\n\n getVehicle() {\n return this.http.get<[]>(environment.HOST_URL + AppConfig.getVehList);\n }\n\n getState() {\n return this.http.get<[]>(environment.HOST_URL + AppConfig.getStateList);\n }\n\n getAcType() {\n return this.http.get<[]>(environment.HOST_URL + AppConfig.getAcTypeList);\n }\n\n getVrType() {\n return this.http.get<[]>(environment.HOST_URL + AppConfig.getVrTypeList);\n }\n\n getDashboardCounterdata(sObj) {\n return this.http.post<[DahboardCounter]>(environment.HOST_URL + AppConfig.getDashboardCount, sObj);\n }\n\n getOptionInv() {\n return this.http.get(environment.HOST_URL + AppConfig.getOptionInv);\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs/BehaviorSubject';\r\n\r\n@Injectable()\r\nexport class DataService {\r\n\r\n private token = new BehaviorSubject(null);\r\n currentToken = this.token.asObservable();\r\n\r\n constructor() { }\r\n\r\n\r\n\r\n setToken(token) {\r\n this.token.next(token);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpRequest,\r\n HttpHandler,\r\n HttpErrorResponse,\r\n HttpResponse,\r\n HttpHeaders,\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/observable/throw';\r\nimport 'rxjs/add/operator/catch';\r\nimport 'rxjs/add/operator/do';\r\nimport { Router } from '@angular/router';\r\nimport { NbToastrService } from '@nebular/theme';\r\n\r\nimport { ERRORCODES } from '../constants/error.constant';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\nexport class InterceptorService implements HttpInterceptor {\r\n\r\n constructor(\r\n private toasterService: NbToastrService,\r\n private router: Router,\r\n ) { }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n const authToken = localStorage.getItem('tpsToken');\r\n let authRequest;\r\n if (authToken) {\r\n authRequest = req.clone({ headers: req.headers.set('Authorization', \"Bearer \" + authToken) });\r\n } else {\r\n //let hdrs = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n //authRequest = req.clone({ headers: req.headers.set(\"Access-Control-Allow-Origin\", \"*\") });\r\n //authRequest = req.clone({ headers: req.headers.set(\"Access-Control-Allow-Headers\", \"Origin, X-Requested-With, Content-Type, Accept\") });\r\n //authRequest = req.clone();\r\n //console.log(authRequest);\r\n authRequest = req.clone();\r\n }\r\n return next\r\n .handle(authRequest)\r\n .do(event => {\r\n if (event instanceof HttpResponse) {\r\n this.requestSuccess(event);\r\n }\r\n })\r\n .catch((error: HttpErrorResponse) => {\r\n\r\n if (error.status == 401) {\r\n this.toasterService.danger('...', 'UnAuthorised Person...');\r\n localStorage.removeItem('tpsToken');\r\n this.router.navigate(['/auth']);\r\n }\r\n else if (error.error.applicationErrorCode !== undefined &&\r\n error.error.applicationErrorCode !== null &&\r\n error.error.applicationErrorCode in ERRORCODES) {\r\n if (error.error.applicationErrorCode === 1000 || error.status == 401) {\r\n this.toasterService.danger('...', ERRORCODES[error.error.applicationErrorCode]);\r\n this.router.navigate(['/auth']);\r\n } else {\r\n this.toasterService.danger('...', ERRORCODES[error.error.applicationErrorCode]);\r\n }\r\n } else {\r\n this.toasterService.danger(error);\r\n }\r\n return Observable.throw(error);\r\n });\r\n }\r\n\r\n private requestSuccess(res: HttpResponse) {\r\n return res;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Router } from '@angular/router';\r\nimport * as jwt_decode from 'jwt-decode';\r\n\r\nimport { environment } from '../../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { VwDtlStd, VwColStd, AcAdd, RepDtlStd, RepColStd } from '../shared.model';\r\nimport { AppConfig } from '../../app.config';\r\nimport { VrTypeDtl } from '../shared.model'\r\nimport { VhCatDtl } from '../../lr-mod/LrModel';\r\nimport { BranchDtl } from '../../masters/masterModel';\r\nimport { UserMenu } from '../../@theme/layouts/layoutModel';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\nexport class SharedService {\r\n\r\n constructor(\r\n private router: Router,\r\n private http: HttpClient\r\n ) { }\r\n\r\n\r\n downloadExcelReportLink(documentName: string, url: string) {\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = documentName;\r\n link.click();\r\n link.remove();\r\n }\r\n\r\n\r\n getAcAddress(id) {\r\n return this.http.get(environment.HOST_URL + AppConfig.getAcAdd + '/?id='.concat(id));\r\n }\r\n\r\n\r\n\r\n getBranch() {\r\n\r\n return this.http.get(environment.HOST_URL + AppConfig.BranchList);\r\n\r\n\r\n }\r\n gGetVrType(sType) {\r\n var url = environment.HOST_URL + AppConfig.getVrTypeList.concat('/?type=').concat(sType);\r\n return this.http.get(url);\r\n }\r\n\r\n gGetVhCatList() {\r\n var url = environment.HOST_URL + AppConfig.getVhCatList;\r\n return this.http.get(url);\r\n }\r\n\r\n getAcmListForCombo(sType) {\r\n var url = environment.HOST_URL + AppConfig.getAcmListForCombo.concat('/?id=').concat(sType);\r\n return this.http.get<[any]>(url);\r\n }\r\n\r\n getViewsByGrp(sId) {\r\n return this.http.get(environment.HOST_URL + AppConfig.getViewsByGrp.concat('/?Id=').concat(sId));\r\n }\r\n\r\n getVwColsByGrp(sId) {\r\n return this.http.get(environment.HOST_URL + AppConfig.getVwColsByGrp.concat('/?Id=').concat(sId));\r\n }\r\n\r\n getRepDtl(sId) {\r\n return this.http.get(environment.HOST_URL + AppConfig.getRepsList.concat('/?Id=').concat(sId));\r\n }\r\n\r\n //GetColsByGrp\r\n\r\n getRepCol(sId) {\r\n return this.http.get(environment.HOST_URL + AppConfig.getRepColList.concat('/?Id=').concat(sId));\r\n }\r\n\r\n clone(obj) {\r\n if (null == obj || \"object\" != typeof obj) return obj;\r\n var copy = obj.constructor();\r\n for (var attr in obj) {\r\n if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr];\r\n }\r\n return copy;\r\n }\r\n\r\n\r\n getCmpInfo() {\r\n // Recursive-4\r\n // get Company Information from CmpInfo Table\r\n var sUrl = environment.HOST_URL + AppConfig.getCmpInfo;\r\n return this.http.get(sUrl);\r\n }\r\n\r\n\r\n checkLogin() {\r\n if (localStorage.getItem('tpsToken') !== null) {\r\n this.router.navigate(['/user']);\r\n } else {\r\n this.logout();\r\n }\r\n }\r\n\r\n isLoggedIn() {\r\n const token = localStorage.getItem('tpsToken');\r\n if (token != null) {\r\n return true;\r\n }\r\n this.logout();\r\n return false;\r\n }\r\n\r\n logout() {\r\n localStorage.removeItem('tpsToken');\r\n localStorage.removeItem('tpsBranch');\r\n\r\n localStorage.removeItem('tpsChlnFilter');\r\n localStorage.removeItem('tpsLhcFilter');\r\n\r\n localStorage.removeItem('tpsLrFilter');\r\n localStorage.removeItem('tpsDvFilter');\r\n\r\n localStorage.removeItem('tpsBlFilter');\r\n localStorage.removeItem('tpsFvFilter');\r\n\r\n localStorage.removeItem('tpsTrFilter');\r\n localStorage.removeItem('tpsUldFilter');\r\n\r\n localStorage.removeItem('tpsMrFilter');\r\n\r\n localStorage.removeItem('trpincFilter');\r\n //\r\n\r\n this.router.navigate(['/auth']);\r\n\r\n }\r\n\r\n StringToDate(value: any): Date | null {\r\n if ((typeof value === 'string') && (value.indexOf('/') > -1)) {\r\n const str = value.split('/');\r\n\r\n const year = Number(str[2]);\r\n const month = Number(str[1]) - 1;\r\n const date = Number(str[0]);\r\n\r\n return new Date(year, month, date);\r\n } else if ((typeof value === 'string') && value === '') {\r\n return new Date();\r\n }\r\n const timestamp = typeof value === 'number' ? value : Date.parse(value);\r\n return isNaN(timestamp) ? null : new Date(timestamp);\r\n }\r\n\r\n\r\n gGetUsShowLrFrght() {\r\n var token = localStorage.getItem('tpsToken');\r\n var decode = jwt_decode(token);\r\n var sUserMode = decode.A5;\r\n return sUserMode.substring(6, 7);\r\n }\r\n\r\n AllowedMe(sTrMode: string, sFrmMode: string): boolean {\r\n var token = localStorage.getItem('tpsToken');\r\n var decode = jwt_decode(token);\r\n var sUserMode = decode.A5;\r\n if (sFrmMode == \"Trn\" && sTrMode == \"Add\" && decode.A5 == \"Operator\") {\r\n return false;\r\n }\r\n\r\n if (sFrmMode == \"Mas\") {\r\n if (sTrMode == \"Add\") {\r\n if (sUserMode.substring(0, 1) == \"Y\")\r\n return true;\r\n else\r\n return false;\r\n }\r\n else if (sTrMode == \"Edit\") {\r\n if (sUserMode.substring(1, 2) == \"Y\")\r\n return true;\r\n else\r\n return false;\r\n }\r\n else if (sTrMode == \"Del\") {\r\n if (sUserMode.substring(2, 3) == \"Y\")\r\n return true;\r\n else\r\n return false;\r\n }\r\n }\r\n else if (sFrmMode == \"Trn\") {\r\n if (sTrMode == \"Add\") {\r\n if (sUserMode.substring(3, 4) == \"Y\")\r\n return true;\r\n else\r\n return false;\r\n }\r\n else if (sTrMode == \"Edit\") {\r\n if (sUserMode.substring(4, 5) == \"Y\")\r\n return true;\r\n else\r\n return false;\r\n }\r\n else if (sTrMode == \"Del\") {\r\n if (sUserMode.substring(5, 6) == \"Y\")\r\n return true;\r\n else\r\n return false;\r\n }\r\n }\r\n else\r\n return false;\r\n }\r\n\r\n gAAdmin() {\r\n var token = localStorage.getItem('tpsToken');\r\n var decode = jwt_decode(token);\r\n var UserType = decode.A3;\r\n\r\n\r\n return UserType;\r\n\r\n // if (UserType == \"AAdmin\")\r\n // return 1;\r\n // else if (UserType == \"Admin\" || UserType == \"SAdmin\")\r\n // return 2\r\n // else\r\n // return 3;\r\n\r\n }\r\n\r\n gGetUserType() {\r\n var token = localStorage.getItem('tpsToken');\r\n var decode = jwt_decode(token);\r\n return decode.A3;\r\n }\r\n\r\n gGetCmpType() {\r\n var token = localStorage.getItem('tpsToken');\r\n var decode = jwt_decode(token);\r\n return decode.A7;\r\n }\r\n\r\n\r\n utcDate(date: Date) {\r\n if (date == null) {\r\n return null;\r\n }\r\n return new Date(\r\n Date.UTC(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n date.getHours(),\r\n date.getMinutes(),\r\n date.getSeconds(),\r\n date.getMilliseconds()\r\n ));\r\n }\r\n GetMenuList() {\r\n var url = environment.HOST_URL + AppConfig.GetMenuList;\r\n return this.http.get(url);\r\n }\r\n\r\n SaveMenuDtl(sObj) {\r\n var url = environment.HOST_URL + AppConfig.SaveMenuDtl;\r\n return this.http.post(url, sObj);\r\n }\r\n\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Ng2SmartTableModule } from 'ng2-smart-table';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\n\r\nimport { AuthGuardService } from './service/auth-guard.service';\r\nimport { SharedService } from './service/shared.service';\r\nimport { ThemeModule } from '../@theme/theme.module';\r\nimport { InterceptorService } from './service/interceptor.service';\r\nimport { DataService } from './service/data.service';\r\nimport { BranchSelectionComponent } from './components/branch-selection/branch-selection.component';\r\nimport { BranchService } from './components/branch-selection/branch.service';\r\nimport { IsNumberDirective, PhoneValidator, EmailValidator } from './directives/validation.directive';\r\nimport { ErrMsgComponent } from './components/error-msg/error-msg.component';\r\nimport { DropdownComponent } from './components/dropdown/dropdown.component';\r\nimport { NumberDirective, DateDirective, NumDotDirective, UpperCaseDirective } from './directives/numbers-only.directive';\r\nimport { AcShortComponent } from '../ac-mod/ac-short/ac-short.component';\r\nimport { MatCreateComponent } from '../masters/mat-create/mat-create.component';\r\nimport { CtCreateComponent } from '../masters/ct-create/ct-create.component';\r\nimport { VhFormComponent } from '../vehicle/vh-form/vh-form.component';\r\nimport { InvFilterComponent } from '../invoice/inv-filter/inv-filter.component';\r\nimport { MatDatepickerModule } from '@angular/material';\r\nimport { InvPrintDialogComponent } from '../invoice/inv-form/inv-print-dialog.component';\r\nimport { AcAddressDialogComponent } from '../ac-mod/ac-address-dialog/ac-address-dialog.component';\r\nimport { UnitCreateComponent } from '../masters/unit-create/unit-create.component';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n HttpClientModule,\r\n Ng2SmartTableModule,\r\n ThemeModule, MatDatepickerModule\r\n ],\r\n declarations: [\r\n BranchSelectionComponent,\r\n IsNumberDirective,\r\n PhoneValidator,\r\n EmailValidator,\r\n ErrMsgComponent,\r\n DropdownComponent, NumberDirective, DateDirective, NumDotDirective, UpperCaseDirective,\r\n AcShortComponent, MatCreateComponent, CtCreateComponent, VhFormComponent, InvFilterComponent, InvPrintDialogComponent,\r\n AcAddressDialogComponent, UnitCreateComponent\r\n ],\r\n exports: [\r\n HttpClientModule,\r\n Ng2SmartTableModule,\r\n ThemeModule,\r\n IsNumberDirective,\r\n PhoneValidator,\r\n EmailValidator,\r\n ErrMsgComponent,\r\n DropdownComponent, NumberDirective, DateDirective, NumDotDirective, UpperCaseDirective,\r\n AcShortComponent, MatCreateComponent, CtCreateComponent, VhFormComponent, InvFilterComponent, UnitCreateComponent\r\n ],\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: InterceptorService,\r\n multi: true,\r\n },\r\n AuthGuardService,\r\n SharedService,\r\n DataService,\r\n BranchService,\r\n ],\r\n entryComponents: [AcShortComponent, MatCreateComponent, CtCreateComponent, VhFormComponent, InvFilterComponent,\r\n AcAddressDialogComponent, InvPrintDialogComponent, UnitCreateComponent]\r\n})\r\n\r\nexport class SharedModule { }\r\n","export class VhDtl {\r\n constructor(\r\n public VhPRefNo: number = 0,\r\n public VhNo: string = '',\r\n public VhCatName: string = '',\r\n public VhModel: string = '',\r\n public VhEngNo: string = '',\r\n public VhChsNo: string = '',\r\n public VhEmtyWt: number = 0,\r\n public VhPasWt: number = 0,\r\n public VhBlNo: string = '',\r\n public VhPurDt?: Date,\r\n public tVhPurDt: string = '',\r\n public VhRegDt?: Date,\r\n public tVhRegDt: string = '',\r\n public VhStdDslAvg: number = 0,\r\n public VhOnAtch: string = '',\r\n public VhOnrName: string = '',\r\n public VhPanNo: string = '',\r\n public VhOnrMobNo: string = '',\r\n public VhRCBook: string = '',\r\n public VhTdsForm: string = '',\r\n public VhDrvName: string = '',\r\n public VhDrvMobNo: string = '',\r\n public VhTnkChsNo: string = '',\r\n public VhTnkNo: string = '',\r\n public VhSize: string = '',\r\n public VhPasDt?: Date,\r\n public tVhPasDt: string = '',\r\n public VhSPDt?: Date,\r\n public tVhSPDt: string = '',\r\n public VhInsDt?: Date,\r\n public tVhInsDt: string = '',\r\n public VhRTaxDt?: Date,\r\n public tVhRTaxDt: string = '',\r\n public VhFitDt?: Date,\r\n public tVhFitDt: string = '',\r\n public VhNPDt?: Date,\r\n public tVhNPDt: string = '',\r\n public VhPUCDt?: Date,\r\n public tVhPUCDt: string = '',\r\n public VhCalDt?: Date,\r\n public tVhCalDt: string = '',\r\n public VhExplDt?: Date,\r\n public tVhExplDt: string = '',\r\n public VhHYearDt?: Date,\r\n public tVhHYearDt: string = '',\r\n public VhYearDt?: Date,\r\n public tVhYearDt: string = '',\r\n public VhHydDt?: Date,\r\n public tVhHydDt: string = '',\r\n public VhAuthDt?: Date,\r\n public tVhAuthDt: string = '',\r\n public VhOtherDt?: Date,\r\n public tVhOtherDt: string = '',\r\n public VhPurAmt: number = 0,\r\n public VhLoanAmt: number = 0,\r\n public VhInstAmt: number = 0,\r\n public VhHP: string = '',\r\n public VhLoanAcRefNo: number = 0,\r\n public VhPayAcRefNo: number = 0,\r\n public VhInstDt: number = 0,\r\n public tVhInstDt: string = '',\r\n public VhPayAcName: string = '',\r\n public VhLoanAcName: string = '',\r\n ) { }\r\n\r\n\r\n}\r\n\r\nexport class AcmCombo {\r\n constructor(\r\n public AcPRefNo: number = 0,\r\n public AcName: string = '',\r\n public AcBankStat: string = '',\r\n ) { }\r\n}\r\n\r\nexport class DocDtl {\r\n constructor(\r\n public DocPRefNo: number = 0,\r\n public DocGrpName: string = '',\r\n public DocName: string = '',\r\n public DocCmpCode: string = ''\r\n ) { }\r\n}\r\nexport class DocFilter {\r\n constructor(\r\n public FrmDocSize: number = 0,\r\n public FrmDocType: string = '',\r\n public FrmDocBase: string = '',\r\n public FrmDocName: string = '',\r\n public FrmGrpName: string = '',\r\n public FrmGrpCode: string = ''\r\n ) { }\r\n}\r\n\r\nexport class ScanDtl {\r\n constructor(\r\n public ScPRefNo: number = 0,\r\n public ScDocName: string = '',\r\n public ScGrpName: string = '',\r\n public ScGrpCode: string = ''\r\n ) { }\r\n}","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { environment } from '../../environments/environment';\nimport { VhDtl, DocDtl, DocFilter } from '../vehicle/VhModel'\nimport { AppConfig } from '../app.config';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VehicleService {\n\n constructor(private http: HttpClient) { }\n\n getVhList() {\n return this.http.get(environment.HOST_URL + AppConfig.getVehList);\n }\n\n getVhDetailById(sVhNo) {\n var url = environment.HOST_URL + AppConfig.getVehicleById.concat('/?id=').concat(sVhNo);\n return this.http.get(url);\n }\n\n createVh(params: VhDtl) {\n var url = environment.HOST_URL + AppConfig.addVeh;\n return this.http.post(url, params);\n }\n\n updateVh(params: VhDtl) {\n return this.http.post(environment.HOST_URL + AppConfig.updateVeh, params);\n }\n\n deleteVh(sVhPRefNo) {\n return this.http.get(environment.HOST_URL + AppConfig.deleteVeh + '/?id='.concat(sVhPRefNo));\n }\n GetDocByCmpCodeGrpName(grpName) {\n var url = environment.HOST_URL + AppConfig.GetDocList.concat('/?grpName=').concat(grpName);\n return this.http.get(url);\n }\n SaveDoc(params: DocFilter) {\n var url = environment.HOST_URL + AppConfig.SaveDoc;\n return this.http.post(url, params);\n }\n GetViewDoc(obj) {\n //var url = environment.HOST_URL + AppConfig.GetViewDoc.concat('/?ScGrpName=').concat(grpName + '&&ScDocName=' + DocName);\n var url = environment.HOST_URL + AppConfig.GetViewDoc;\n const httpParam = new HttpParams();\n let parameters: any = {\n params: httpParam\n }\n parameters.responseType = 'text'\n return this.http.post(url, obj, parameters);\n }\n DeleteDoc(params: DocFilter) {\n var url = environment.HOST_URL + AppConfig.DeleteDoc;\n return this.http.post(url, params);\n }\n}\n","module.exports = \"
\\n Vehicle Information\\n \\n
\\n\\n
\\n\\n
\\n
\\n\\n \\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n\\n\\n
\\n \\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n
\\n\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ZlaGljbGUvdmgtZm9ybS92aC1mb3JtLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { NbToastrService } from '@nebular/theme';\nimport { VehicleService } from '../vehicle.service';\nimport { VhDtl } from '../VhModel';\nimport { Router } from '@angular/router';\nimport { SharedService } from '../../shared/service/shared.service';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\ndeclare const CrctVhNo: any;\n\n@Component({\n selector: 'ngx-vh-form',\n templateUrl: './vh-form.component.html',\n styleUrls: ['./vh-form.component.scss']\n})\nexport class VhFormComponent implements OnInit, OnDestroy {\n\n title: string;\n fCanSave: boolean = true;\n scManager = new Subscription();\n VhData: VhDtl = new VhDtl();\n\n @Input() eVhNo;\n @Input() spinner: boolean;\n toasterTitle = 'Vehicle';\n\n constructor(private sVhService: VehicleService,\n private sRouter: Router, private sSharedService: SharedService,\n private toasterService: NbToastrService, private activeModal: NgbActiveModal\n ) { }\n\n ngOnInit() {\n }\n\n closeModal() {\n this.activeModal.close();\n }\n\n NewVeh() {\n this.VhData = new VhDtl();\n this.title = \"Add New Vehicle\";\n this.fCanSave = true;\n }\n\n getVhDtlByName() {\n this.scManager.add(this.sVhService.getVhDetailById(this.eVhNo).subscribe(res => {\n if (res['data']) this.VhData = res['data'];\n this.fCanSave = this.sSharedService.AllowedMe(\"Edit\", \"Mas\");\n }, (err) => { }));\n }\n\n CrctMe() {\n var vhno = CrctVhNo(this.VhData.VhNo);\n if (vhno == \"\" && this.VhData.VhNo != \"\")\n this.toasterService.info(\"Invalid Vehicle No.\", this.toasterTitle);\n else\n this.VhData.VhNo = vhno;\n }\n\n saveVeh() {\n\n var newvh = CrctVhNo(this.VhData.VhNo);\n\n if (this.VhData.VhNo == undefined) {\n this.toasterService.danger(\"Can't Save Vehicle No. should not be Blank....\", this.toasterTitle);\n return;\n }\n\n if (newvh == \"\") {\n this.toasterService.danger(\"Can't Save Invalid Vehicle No. \", this.toasterTitle);\n return;\n }\n\n this.VhData.VhNo = newvh\n\n if (this.VhData.VhPRefNo == 0) this.replVeh();\n else if (this.VhData.VhPRefNo > 0) this.updateVeh();\n }\n\n replVeh() {\n this.spinner = true;\n this.scManager.add(this.sVhService.createVh(this.VhData).subscribe(res => {\n this.spinner = false;\n if (res['StatusCode'] == 501) this.toasterService.danger('Duplicate Entry...', this.toasterTitle);\n else {\n this.VhData = res['data'];\n this.toasterService.success('Created successfully', this.toasterTitle);\n this.fCanSave = false;\n this.activeModal.close(res['data']);\n }\n\n\n }, (err) => {\n this.spinner = false;\n }));\n\n }\n\n updateVeh() {\n this.spinner = true;\n this.scManager.add(this.sVhService.updateVh(this.VhData).subscribe(res => {\n this.spinner = false;\n if (res['StatusCode'] == 501) this.toasterService.danger('Duplicate Entry...', this.toasterTitle);\n else {\n this.toasterService.success('Updated successfully', this.toasterTitle);\n this.activeModal.close(res['data']);\n }\n }, (err) => {\n this.spinner = false;\n }));\n }\n\n ngOnDestroy() {\n if (this.scManager) this.scManager.unsubscribe();\n }\n\n}\n","export let environment = {\n production: false,\n\n //AUTH_URL: 'https://localhost:44317/',\n AUTH_URL: 'http://api2.rectrans.in/',\n //AUTH_URL: 'http://api5.rectrans.in/',\n\n //HOST_URL: 'https://localhost:44317/',\n HOST_URL: 'http://api2.rectrans.in/',\n //HOST_URL: 'http://api5.rectrans.in/',\n};\n","/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\nimport { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"sourceRoot":""}