{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./src/app/app.component.html","./src/app/components/add-address/add-address.component.html","./src/app/components/dialog/dialog.component.html","./src/app/components/login-handle/login-handle.component.html","./src/app/components/navbar/navbar.component.html","./src/app/components/profile/profile.component.html","./src/app/components/spinner/spinner.component.html","./src/app/pages/add-ach/add-ach.component.html","./src/app/pages/add-payment/add-payment.component.html","./src/app/pages/checkout/checkout.component.html","./src/app/pages/credit-card/credit-card.component.html","./src/app/pages/edit-payment/edit-payment.component.html","./src/app/pages/error/error.component.html","./src/app/pages/hix-redirect/hix-redirect.component.html","./src/app/pages/home/home.component.html","./src/app/pages/logout/logout.component.html","./src/app/pages/member-stop-recurring-payment/member-stop-recurring-payment.component.html","./src/app/pages/one-time-payment/one-time-payment.component.html","./src/app/pages/open-payment/open-payment.component.html","./src/app/pages/payment-review/payment-review.component.html","./src/app/pages/select-address/select-address.component.html","./src/app/pages/select-payment/select-payment.component.html","./src/app/pages/stop-recurring-payment/stop-recurring-payment.component.html","./node_modules/tslib/tslib.es6.js","./src/app/AuthGuard/auth.guard.ts","./src/app/AuthGuard/windowsauth.guard.ts","./src/app/CommonModule/addressUtils.ts","./src/app/CommonModule/app-material.module.ts","./src/app/CommonModule/app-routing.module.ts","./src/app/CommonModule/constants.ts","./src/app/CommonModule/isEmpty.ts","./src/app/CommonModule/paymentUtils.ts","./src/app/CommonModule/route-animations.ts","./src/app/app.component.css","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/components/add-address/add-address.component.css","./src/app/components/add-address/add-address.component.ts","./src/app/components/add-address/allStates.ts","./src/app/components/dialog/dialog.component.css","./src/app/components/dialog/dialog.component.ts","./src/app/components/login-handle/login-handle.component.css","./src/app/components/login-handle/login-handle.component.ts","./src/app/components/navbar/navbar.component.css","./src/app/components/navbar/navbar.component.ts","./src/app/components/profile/profile.component.css","./src/app/components/profile/profile.component.ts","./src/app/components/spinner/spinner.component.scss","./src/app/components/spinner/spinner.component.ts","./src/app/directives/number.directive.ts","./src/app/directives/phone-masks-directive.directive.ts","./src/app/models/address.model.ts","./src/app/models/customer.model.ts","./src/app/models/hixCustomer.model.ts","./src/app/models/hixTransaction.model.ts","./src/app/models/open-payment-customer.model.ts","./src/app/models/otpCustomer.model.ts","./src/app/models/otpTransaction.model.ts","./src/app/models/payment-method.model.ts","./src/app/models/transaction.model.ts","./src/app/models/valid-card.model.ts","./src/app/pages/add-ach/add-ach.component.scss","./src/app/pages/add-ach/add-ach.component.ts","./src/app/pages/add-payment/add-payment.component.css","./src/app/pages/add-payment/add-payment.component.ts","./src/app/pages/checkout/checkout.component.css","./src/app/pages/checkout/checkout.component.ts","./src/app/pages/credit-card/credit-card.component.css","./src/app/pages/credit-card/credit-card.component.ts","./src/app/pages/edit-payment/edit-payment.component.scss","./src/app/pages/edit-payment/edit-payment.component.ts","./src/app/pages/error/error.component.css","./src/app/pages/error/error.component.ts","./src/app/pages/hix-redirect/hix-redirect.component.scss","./src/app/pages/hix-redirect/hix-redirect.component.ts","./src/app/pages/home/home.component.css","./src/app/pages/home/home.component.ts","./src/app/pages/logout/logout.component.css","./src/app/pages/logout/logout.component.ts","./src/app/pages/member-stop-recurring-payment/member-stop-recurring-payment.component.scss","./src/app/pages/member-stop-recurring-payment/member-stop-recurring-payment.component.ts","./src/app/pages/one-time-payment/one-time-payment.component.scss","./src/app/pages/one-time-payment/one-time-payment.component.ts","./src/app/pages/open-payment/open-payment.component.scss","./src/app/pages/open-payment/open-payment.component.ts","./src/app/pages/payment-review/payment-review.component.css","./src/app/pages/payment-review/payment-review.component.ts","./src/app/pages/select-address/select-address.component.css","./src/app/pages/select-address/select-address.component.ts","./src/app/pages/select-payment/select-payment.component.css","./src/app/pages/select-payment/select-payment.component.ts","./src/app/pages/stop-recurring-payment/stop-recurring-payment.component.scss","./src/app/pages/stop-recurring-payment/stop-recurring-payment.component.ts","./src/app/services/Address/address.service.ts","./src/app/services/Auth/auth0.service.ts","./src/app/services/Auth/authentication.service.ts","./src/app/services/Customer/customer.service.ts","./src/app/services/Interceptor/interceptor.service.ts","./src/app/services/Loader/loader.service.ts","./src/app/services/Payment/payment.service.ts","./src/app/services/Recording/recording.service.ts","./src/app/services/Transaction/transaction.service.ts","./src/app/services/ZoidHelper/zoid-helper.service.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","export default \"
\\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
\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n 0\\\"\\r\\n class=\\\"address-radio-group\\\"\\r\\n formControlName=\\\"addressRadio\\\"\\r\\n >\\r\\n \\r\\n

\\r\\n {{ address.line1 + \\\" \\\" + address.line2 | titlecase }}
\\r\\n {{\\r\\n (address.city | titlecase) +\\r\\n \\\" \\\" +\\r\\n (address.state | uppercase) +\\r\\n \\\" \\\" +\\r\\n address.zip\\r\\n }}\\r\\n \\r\\n

\\r\\n \\r\\n \\r\\n Add a new address\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n 0\\\"\\r\\n >\\r\\n Use an existing address\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Address Line 1\\r\\n \\r\\n Address Line1 is required\\r\\n \\r\\n \\r\\n Address Line 2\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n City\\r\\n \\r\\n City is required\\r\\n \\r\\n \\r\\n State\\r\\n \\r\\n {{ allStates[key] }}\\r\\n \\r\\n State is required\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Zip\\r\\n \\r\\n Zip Code is required\\r\\n Zip code should be 5 characters long\\r\\n \\r\\n \\r\\n Billing Phone\\r\\n \\r\\n Phone is required\\r\\n Phone number must be 10 characters long\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n

Are you sure?

\\r\\n \\r\\n {{ data?.message }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n

Alert!

\\r\\n \\r\\n {{ data?.message }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","export default \"

login-handle works!

\\r\\n\"","export default \"\\r\\n \\r\\n \\r\\n keyboard_arrow_left\\r\\n \\r\\n \\r\\n \\r\\n {{ title }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\"","export default \"
\\r\\n{{ profile | json }}\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"

Enter your bank information below

\\r\\n
\\r\\n \\r\\n Routing Number\\r\\n \\r\\n \\r\\n Routing Number is required and must be 9 digits.\\r\\n \\r\\n \\r\\n \\r\\n Account Number\\r\\n \\r\\n \\r\\n Account Number is required and must be numeric.\\r\\n \\r\\n \\r\\n \\r\\n Confirm Account Number\\r\\n \\r\\n \\r\\n Confirm Account Number is required and must match Account Number above.\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Account Type\\r\\n \\r\\n Checking\\r\\n Savings\\r\\n \\r\\n \\r\\n Please choose an account type.\\r\\n \\r\\n \\r\\n \\r\\n Bank Name\\r\\n \\r\\n \\r\\n \\r\\n Name on Account\\r\\n \\r\\n \\r\\n

Billing Address

\\r\\n \\r\\n
\\r\\n \\r\\n Add account\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\"","export default \"

Add a Credit/Debit Card

\\r\\n
\\r\\n \\r\\n

Billing Address

\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Add payment method\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n

\\r\\n Making Payments for {{ customer.fullName }},\\r\\n Not You? \\r\\n

\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n

Payment Source

\\r\\n \\r\\n \\r\\n Card\\r\\n \\r\\n ACH\\r\\n Account\\r\\n ending in {{ defaultPayment.lastFour }}\\r\\n \\r\\n

\\r\\n \\r\\n

Please add a payment method

\\r\\n
\\r\\n arrow_forward_ios\\r\\n
\\r\\n \\r\\n

\\r\\n This is required\\r\\n

\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n

Please select which day of the month your payment will be drafted.

\\r\\n \\r\\n \\r\\n {{draftDay.description}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n

Monthly Recurring Payment Setup

\\r\\n \\r\\n \\r\\n

Your total will be automatically calculated every month.

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Choose a payment amount

\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n

{{ paymentTotalDisplay | currency }}

\\r\\n Current Balance
as of {{ date.value | date }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Other amount\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Stop Recurring Payments\\r\\n \\r\\n \\r\\n \\r\\n Cancel\\r\\n \\r\\n
\\r\\n\\r\\n

\\r\\n Copyright © 2020 {{ companyName }}.
\\r\\n

\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n

Creating new customer

\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n \\r\\n Name on card\\r\\n \\r\\n \\r\\n Name is required.\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n highlight_off\\r\\n
\\r\\n
\\r\\n \\r\\n Card Number\\r\\n \\r\\n Please enter a valid card number\\r\\n {{ ccNumber.resolvedScheme$ | async | titlecase }} is not\\r\\n accepted\\r\\n \\r\\n
\\r\\n \\r\\n MM/YY\\r\\n \\r\\n Invalid date\\r\\n \\r\\n \\r\\n CVV\\r\\n \\r\\n Invalid CVV\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n\"","export default \"

Edit Payment Method

\\r\\n
\\r\\n

Editing\\r\\n \\r\\n card\\r\\n \\r\\n ACH\\r\\n Account\\r\\n ending in {{ editingPaymentMethod.lastFour }}\\r\\n \\r\\n

\\r\\n

Billing Address

\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Update payment method\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n \\r\\n

Things don't appear to be working at the moment.

\\r\\n \\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n
\\r\\n

\\r\\n Please enter the required information\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Date of Birth\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n SSN or TaxID\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Phone Number\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n

\\r\\n Total due today:\\r\\n ${{ this.paymentTotal$ | async }}\\r\\n

\\r\\n
\\r\\n

Add a credit or debit card

\\r\\n \\r\\n \\r\\n
\\r\\n

Billing Address

\\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 Cancel\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n check_circle_outline\\r\\n

Payment Successful

\\r\\n

You may close this window.

\\r\\n
\\r\\n
\\r\\n check_circle_outline\\r\\n

A payment has been processed for this this enrollment. Please contact Vantage Health Plan if this you believe this to be incorrect or have any questions.

\\r\\n

Local: (318) 361-0900

\\r\\n

Toll-Free: (888) 823-1910

\\r\\n

TTY: 711 (for the hearing impaired)

\\r\\n

Phone representative hours: 8 am - 6 pm, Monday - Friday

\\r\\n

You may close this window.

\\r\\n
\\r\\n
\\r\\n highlight_off\\r\\n

Payment Failed

\\r\\n
\\r\\n\"","export default \"\"","export default \"

You have been logged out

\\r\\n\"","export default \"
\\r\\n

Cancel your recurring payment

\\r\\n \\r\\n
\\r\\n

\\r\\n {{ infoText }}\\r\\n

\\r\\n\\r\\n \\r\\n Confirm Cancelling of Recurring Payment\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n\"","export default \"\\r\\n
\\r\\n

\\r\\n Making Payment for {{ this.otpCustomer.customer?.fullName }}\\r\\n

\\r\\n
\\r\\n

\\r\\n Total due today:\\r\\n ${{ this.paymentTotal$ | async }}\\r\\n

\\r\\n
\\r\\n

Add a credit or debit card

\\r\\n\\r\\n \\r\\n
\\r\\n

Billing Address

\\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 Cancel\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n check_circle_outline\\r\\n

Payment Successful

\\r\\n
\\r\\n
\\r\\n highlight_off\\r\\n

Payment Failed

\\r\\n
\\r\\n\"","export default \"\\r\\n
\\r\\n

\\r\\n Please enter the required information\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Phone Number\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Amount to Pay\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n

Add a credit or debit card

\\r\\n \\r\\n \\r\\n
\\r\\n

Billing Address

\\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 Cancel\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n check_circle_outline\\r\\n

Payment Successful

\\r\\n

You may close this window.

\\r\\n
\\r\\n
\\r\\n highlight_off\\r\\n

Payment Failed

\\r\\n
\\r\\n\"","export default \"
\\r\\n

Review your payment information

\\r\\n \\r\\n
\\r\\n Payment Method
\\r\\n Account Ending in {{ selectedPaymentMethod.lastFour }}\\r\\n
\\r\\n \\r\\n
\\r\\n Total Payment Amount
\\r\\n Automatically calculated every month\\r\\n \\r\\n \\r\\n {{ paymentAmount | currency }}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n Payment Type
\\r\\n One Time Payment\\r\\n Recurring Monthly Payment\\r\\n \\r\\n
\\r\\n \\r\\n

\\r\\n By tapping {{submitButtonName}}, I authorize {{companyName}} to schedule and\\r\\n initiate the payment method listed on this page.\\r\\n

\\r\\n\\r\\n
\\r\\n \\r\\n {{submitButtonName}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n check_circle_outline\\r\\n

Payment Successful

\\r\\n
\\r\\n
\\r\\n highlight_off\\r\\n

Payment Failed

\\r\\n
\\r\\n\"","export default \"
\\r\\n

Saved Addresses

\\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n \\r\\n {{ address.line1 }} {{ address.line2 }}\\r\\n \\r\\n {{\\r\\n address.city + \\\", \\\" + address.state + \\\" \\\" + address.zip\\r\\n }}\\r\\n

\\r\\n \\r\\n \\r\\n Remove\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\"","export default \"\\r\\n
\\r\\n
0; else noPaymentMethods\\\">\\r\\n

Saved Payment Methods

\\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n \\r\\n Card\\r\\n \\r\\n ACH\\r\\n Account\\r\\n Ending in {{ paymentMethod.lastFour }}\\r\\n \\r\\n {{ paymentMethod.nameOnAccount }}\\r\\n

\\r\\n \\r\\n \\r\\n create\\r\\n \\r\\n \\r\\n delete\\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
\\r\\n \\r\\n

No payment methods found!

\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Error loading the list of payment methods.
Please try again later.\\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\"","export default \"
\\r\\n

Cancel your recurring payment

\\r\\n \\r\\n
\\r\\n

\\r\\n {{ infoText }}\\r\\n

\\r\\n\\r\\n \\r\\n Confirm Cancelling of Recurring Payment\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n\"","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport {\r\n CanActivate,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot,\r\n UrlTree,\r\n} from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { Auth0Service } from \"../services/Auth/auth0.service\";\r\nimport { tap } from \"rxjs/operators\";\r\n// import { AuthenticationService } from \"../services/Auth/authentication.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class AuthGuard implements CanActivate {\r\n constructor(\r\n private auth0: Auth0Service // private auth: AuthenticationService\r\n ) {}\r\n canActivate(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable | Promise | boolean {\r\n // return this.auth.loggedIn;\r\n\r\n return this.auth0.isAuthenticated$.pipe(\r\n tap((loggedIn) => {\r\n if (!loggedIn) {\r\n this.auth0.login(state.url);\r\n }\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport {\r\n CanActivate,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot,\r\n UrlTree,\r\n Router,\r\n} from \"@angular/router\";\r\nimport { Observable, of, throwError } from \"rxjs\";\r\nimport { Auth0Service } from \"../services/Auth/auth0.service\";\r\nimport { tap, catchError, shareReplay } from \"rxjs/operators\";\r\nimport { AuthenticationService } from \"../services/Auth/authentication.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class WindowsAuthGuard implements CanActivate {\r\n constructor(\r\n private auth0: Auth0Service,\r\n private auth: AuthenticationService,\r\n private router: Router\r\n ) {}\r\n canActivate(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable | Promise | boolean {\r\n return this.auth.checkWindowsAuth().pipe(\r\n tap((loggedIn) => {\r\n if (loggedIn) {\r\n console.log(loggedIn);\r\n return true\r\n }\r\n else console.log(\"/error\");\r\n })\r\n );\r\n\r\n // .pipe(\r\n // tap((loggedIn) => {\r\n // console.log(\"Logged in \", loggedIn);\r\n\r\n // if (loggedIn) return true;\r\n // else console.log(\"/error\");\r\n // })\r\n // );\r\n // return this.auth.loggedIn.pipe(\r\n // tap((loggedIn) => console.log(\"loggedin \", loggedIn))\r\n // );\r\n // if (this.auth.loggedIn.getValue()) {\r\n // console.log(\"Allowed\");\r\n\r\n // return true;\r\n // } else {\r\n // console.log(\"not allowred\");\r\n // return false;\r\n // }\r\n // return this.auth.checkWindowsAuth().pipe(\r\n // // tap(loggedIn => {\r\n // // console.log(\"WIndows auth guard \" + loggedIn);\r\n // // if (loggedIn) {\r\n // // return true;\r\n // // }\r\n // // }),\r\n // catchError(err => throwError(err))\r\n // );\r\n // return true;\r\n // return this.auth.loggedIn.pipe(\r\n // tap(loggedIn => {\r\n // console.log(\"USer logged in: \" + loggedIn);\r\n // })\r\n // );\r\n // return true;\r\n // return this.auth.checkWindowsAuth().pipe(\r\n // tap\r\n // )\r\n\r\n // return this.auth0.isAuthenticated$.pipe(\r\n // tap(loggedIn => {\r\n // if (!loggedIn) {\r\n // this.auth0.login(state.url);\r\n // }\r\n // })\r\n // );\r\n }\r\n}\r\n","import { Address } from \"../models/address.model\";\r\n\r\nexport abstract class AddressUtils {\r\n static WebUser = \"WebUser\";\r\n static AdminUser = \"AdminUser\";\r\n\r\n static isAddressEqual(address1: Address, address2: Address): boolean {\r\n return (\r\n address1.city === address2.city &&\r\n address1.line1 === address2.line1 &&\r\n address1.line2 === address2.line2 &&\r\n address1.phone === address2.phone &&\r\n address1.state === address2.state &&\r\n address1.zip === address2.zip\r\n );\r\n }\r\n\r\n public static getUniqueAddresses(addresses: Address[]) {\r\n return addresses.reduce((acc, current) => {\r\n const x = acc.find((item) => this.isAddressEqual(item, current));\r\n if (!x) {\r\n return acc.concat([current]);\r\n } else {\r\n return acc;\r\n }\r\n }, []);\r\n }\r\n\r\n public static getIdFromAddress(addresses: Address[], address: Address): string | null{\r\n let finalAddress = addresses.filter(a => {\r\n return this.isAddressEqual(a, address);\r\n });\r\n if(finalAddress.length > 0)\r\n return finalAddress[0].addressId;\r\n return null;\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { Routes, RouterModule } from \"@angular/router\";\r\nimport {\r\n MatToolbarModule,\r\n MatMenuModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatListModule,\r\n MatDividerModule,\r\n MatCardModule,\r\n MatNativeDateModule,\r\n MatButtonToggleModule,\r\n MatRippleModule,\r\n MatDialogModule,\r\n MatSelectModule,\r\n MatRadioModule\r\n} from \"@angular/material\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport {\r\n MatDatepickerModule,\r\n MatDatepickerInputEvent\r\n} from \"@angular/material/datepicker\";\r\n\r\nconst MaterialComponents = [\r\n MatToolbarModule,\r\n MatMenuModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatListModule,\r\n MatDividerModule,\r\n MatCardModule,\r\n MatDatepickerModule,\r\n MatInputModule,\r\n MatNativeDateModule,\r\n MatButtonToggleModule,\r\n MatRippleModule,\r\n MatDialogModule,\r\n MatSelectModule,\r\n MatRadioModule\r\n];\r\n\r\n@NgModule({\r\n imports: [MaterialComponents],\r\n exports: [MaterialComponents]\r\n})\r\nexport class MaterialModule {}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { Routes, RouterModule } from \"@angular/router\";\r\nimport { AppComponent } from \"../app.component\";\r\nimport { CheckoutComponent } from \"../pages/checkout/checkout.component\";\r\nimport { NavbarComponent } from \"../components/navbar/navbar.component\";\r\nimport { ProfileComponent } from \"../components/profile/profile.component\";\r\nimport { AuthGuard } from \"../AuthGuard/auth.guard\";\r\nimport { HomeComponent } from \"../pages/home/home.component\";\r\nimport { HTTP_INTERCEPTORS } from \"@angular/common/http\";\r\nimport { InterceptorService } from \"../services/Interceptor/interceptor.service\";\r\nimport { SelectPaymentComponent } from \"../pages/select-payment/select-payment.component\";\r\nimport { AddPaymentComponent } from \"../pages/add-payment/add-payment.component\";\r\nimport { SelectAddressComponent } from \"../pages/select-address/select-address.component\";\r\nimport { AddAddressComponent } from \"../components/add-address/add-address.component\";\r\nimport { LogoutComponent } from \"../pages/logout/logout.component\";\r\nimport { PaymentReviewComponent } from \"../pages/payment-review/payment-review.component\";\r\nimport { WindowsAuthGuard } from \"../AuthGuard/windowsauth.guard\";\r\nimport { ErrorComponent } from \"../pages/error/error.component\";\r\nimport { AddAchComponent } from \"../pages/add-ach/add-ach.component\";\r\nimport { CreditCardComponent } from \"../pages/credit-card/credit-card.component\";\r\nimport { OneTimePaymentComponent } from \"../pages/one-time-payment/one-time-payment.component\";\r\nimport { EditPaymentComponent } from \"../pages/edit-payment/edit-payment.component\";\r\nimport { StopRecurringPaymentComponent } from \"../pages/stop-recurring-payment/stop-recurring-payment.component\";\r\nimport { MemberStopRecurringPaymentComponent } from '../pages/member-stop-recurring-payment/member-stop-recurring-payment.component';\r\nimport { HixRedirectComponent } from \"../pages/hix-redirect/hix-redirect.component\";\r\nimport { OpenPaymentComponent } from \"../pages/open-payment/open-payment.component\";\r\n\r\nconst routes: Routes = [\r\n {\r\n path: \"\",\r\n component: HomeComponent,\r\n data: { animation: \"noAnimationForward\" },\r\n },\r\n {\r\n path: \"portal-payment\",\r\n component: CheckoutComponent,\r\n canActivate: [AuthGuard],\r\n data: { animation: \"isLeft\" },\r\n },\r\n {\r\n path: \"portal-payment/paymentmethods\",\r\n component: SelectPaymentComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: \"portal-payment/paymentmethods/newcc\",\r\n component: AddPaymentComponent,\r\n canActivate: [AuthGuard],\r\n data: { animation: \"isRight\" },\r\n },\r\n {\r\n path: \"portal-payment/paymentmethods/newach\",\r\n component: AddAchComponent,\r\n canActivate: [AuthGuard],\r\n data: { animation: \"isRight\" },\r\n },\r\n {\r\n path: \"portal-payment/paymentmethods/edit\",\r\n component: EditPaymentComponent,\r\n canActivate: [AuthGuard],\r\n data: { animation: \"isRight\" },\r\n },\r\n {\r\n path: \"portal-payment/review\",\r\n component: PaymentReviewComponent,\r\n canActivate: [AuthGuard],\r\n },\r\n\r\n {\r\n path: \"one-time-payment\",\r\n component: OneTimePaymentComponent,\r\n data: { animation: \"isLeft\" },\r\n },\r\n {\r\n path: \"one-time-payment/paymentmethods\",\r\n component: SelectPaymentComponent,\r\n },\r\n {\r\n path: \"one-time-payment/paymentmethods/newcc\",\r\n component: CreditCardComponent,\r\n data: { animation: \"isRight\" },\r\n },\r\n {\r\n path: \"one-time-payment/paymentmethods/newach\",\r\n component: AddAchComponent,\r\n data: { animation: \"isRight\" },\r\n },\r\n {\r\n path: \"one-time-payment/review\",\r\n component: PaymentReviewComponent,\r\n },\r\n { path: \"profile\", component: ProfileComponent, canActivate: [AuthGuard] },\r\n {\r\n path: \"admin-payment\",\r\n component: CheckoutComponent,\r\n canActivate: [WindowsAuthGuard],\r\n data: { animation: \"isLeft\" },\r\n },\r\n {\r\n path: \"admin-payment/paymentmethods\",\r\n component: SelectPaymentComponent,\r\n canActivate: [WindowsAuthGuard],\r\n },\r\n {\r\n path: \"admin-payment/paymentmethods/newcc\",\r\n component: AddPaymentComponent,\r\n canActivate: [WindowsAuthGuard],\r\n data: { animation: \"isRight\" },\r\n },\r\n {\r\n path: \"admin-payment/paymentmethods/newach\",\r\n component: AddAchComponent,\r\n canActivate: [WindowsAuthGuard],\r\n data: { animation: \"isRight\" },\r\n },\r\n {\r\n path: \"admin-payment/paymentmethods/edit\",\r\n component: EditPaymentComponent,\r\n canActivate: [WindowsAuthGuard],\r\n data: { animation: \"isRight\" },\r\n },\r\n { path: \"logout\", component: LogoutComponent },\r\n\r\n {\r\n path: \"admin-payment/review\",\r\n component: PaymentReviewComponent,\r\n canActivate: [WindowsAuthGuard],\r\n },\r\n {\r\n path: \"admin-payment/stop-recurring\",\r\n component: StopRecurringPaymentComponent,\r\n canActivate: [WindowsAuthGuard],\r\n data: { animation: \"isRight\" },\r\n },\r\n {\r\n path: \"payment/stop-recurring\",\r\n component: MemberStopRecurringPaymentComponent,\r\n canActivate: [AuthGuard],\r\n data: { animation: \"isRight\" },\r\n },\r\n {\r\n path: \"hix-redirect\",\r\n component: HixRedirectComponent,\r\n // canActivate: []\r\n data: { animation: \"isLeft\"}\r\n },\r\n {\r\n path: \"open-payment\",\r\n component: OpenPaymentComponent,\r\n // canActivate: []\r\n data: { animation: \"isLeft\"}\r\n },\r\n {\r\n path: \"error\",\r\n component: ErrorComponent,\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule],\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: InterceptorService,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class AppRoutingModule {}\r\n","export const VANTAGE_THEME = \"VANTAGE_THEME\";\r\nexport const VANTAGE = \"VANTAGE\";\r\nexport const BCBSLA_THEME = \"BCBSLA_THEME\";\r\nexport const BCBSLA = \"BCBSLA\";\r\n","export function isEmpty(value) {\r\n return value === undefined ||\r\n value === null ||\r\n (typeof value === \"object\" && Object.keys(value).length === 0) ||\r\n (typeof value === \"string\" && value.trim().length === 0);\r\n}\r\n","export abstract class PaymentUtils {\r\n public static removeAllSpaces(str: string): string {\r\n return str.replace(/\\s/g, \"\");\r\n }\r\n}\r\n","import {\r\n trigger,\r\n transition,\r\n style,\r\n query,\r\n group,\r\n animateChild,\r\n animate,\r\n keyframes,\r\n} from \"@angular/animations\";\r\n\r\nexport const slider = trigger(\"routeAnimations\", [\r\n transition(\"noAnimationForward => *\", []),\r\n transition(\"* => isLeft\", [\r\n query(\r\n \":enter, :leave\",\r\n [\r\n style({\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n width: \"100%\",\r\n })\r\n ],\r\n { optional: true }\r\n ),\r\n query(\":enter\", [style({ left: \"-100%\" })]),\r\n group([\r\n query(\r\n \":leave\",\r\n [animate(\"300ms ease\", style({ left: \"100%\" }))],\r\n { optional: true }\r\n ),\r\n query(\":enter\", [animate(\"300ms ease\", style({ left: \"0%\" }))]),\r\n ]),\r\n ]),\r\n transition(\"* => isRight\", [\r\n query(\r\n \":enter, :leave\",\r\n [\r\n style({\r\n position: \"absolute\",\r\n top: 0,\r\n right: 0,\r\n width: \"100%\",\r\n })\r\n ],\r\n { optional: true }\r\n ),\r\n query(\":enter\", [style({ right: \"-100%\" })]),\r\n group([\r\n query(\r\n \":leave\",\r\n [animate(\"300ms ease\", style({ right: \"100%\" }))],\r\n { optional: true }\r\n ),\r\n query(\":enter\", [animate(\"300ms ease\", style({ right: \"0%\" }))]),\r\n ]),\r\n ]),\r\n transition(\"isRight => *\", [\r\n query(\r\n \":enter, :leave\",\r\n [\r\n style({\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n width: \"100%\",\r\n })\r\n ],\r\n { optional: true }\r\n ),\r\n query(\":enter\", [style({ left: \"-100%\" })]),\r\n group([\r\n query(\r\n \":leave\",\r\n [animate(\"300ms ease\", style({ left: \"100%\" }))],\r\n { optional: true }\r\n ),\r\n query(\":enter\", [animate(\"300ms ease\", style({ left: \"0%\" }))]),\r\n ]),\r\n ]),\r\n transition(\"isLeft => *\", [\r\n query(\r\n \":enter, :leave\",\r\n [\r\n style({\r\n position: \"absolute\",\r\n top: 0,\r\n right: 0,\r\n width: \"100%\",\r\n })\r\n ],\r\n { optional: true }\r\n ),\r\n query(\":enter\", [style({ right: \"-100%\" })]),\r\n group([\r\n query(\r\n \":leave\",\r\n [animate(\"300ms ease\", style({ right: \"100%\" }))],\r\n { optional: true }\r\n ),\r\n query(\":enter\", [animate(\"300ms ease\", style({ right: \"0%\" }))]),\r\n ]),\r\n ]),\r\n]);\r\n\r\n// Can't use a function call in a class that's going in a decorator\r\nfunction slideTo(direction) {\r\n const optional = { optional: true };\r\n return [\r\n query(\r\n \":enter, :leave\",\r\n [\r\n style({\r\n position: \"absolute\",\r\n top: 0,\r\n [direction]: 0,\r\n width: \"100%\",\r\n }),\r\n ],\r\n optional\r\n ),\r\n query(\":enter\", [style({ [direction]: \"-100%\" })]),\r\n group([\r\n query(\r\n \":leave\",\r\n [animate(\"300ms ease\", style({ [direction]: \"100%\" }))],\r\n optional\r\n ),\r\n query(\":enter\", [animate(\"300ms ease\", style({ [direction]: \"0%\" }))]),\r\n ]),\r\n ];\r\n}\r\n","export default \".main {\\r\\n /* max-width: 600px; */\\r\\n margin: 0px auto;\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n@media only screen and (min-width: 750px) {\\r\\n .main {\\r\\n border: 1px solid #eaeced;\\r\\n border-radius: 5px;\\r\\n /* padding: 10px; */\\r\\n width: 500px;\\r\\n margin: 0px auto;\\r\\n min-height: 600px;\\r\\n padding-bottom: 20px;\\r\\n max-height: -webkit-fit-content;\\r\\n max-height: -moz-fit-content;\\r\\n max-height: fit-content;\\r\\n box-shadow: 0px 6px 20px 20px rgb(243, 243, 243);\\r\\n }\\r\\n}\\r\\n\\r\\n.spinner {\\r\\n background-color: rgba(255, 255, 255, 0.7);\\r\\n position: absolute;\\r\\n height: 100%;\\r\\n z-index: 10000;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXBwLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxzQkFBc0I7RUFDdEIsZ0JBQWdCO0VBQ2hCLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFO0lBQ0UseUJBQXlCO0lBQ3pCLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsb0JBQW9CO0lBQ3BCLCtCQUF1QjtJQUF2Qiw0QkFBdUI7SUFBdkIsdUJBQXVCO0lBR3ZCLGdEQUFnRDtFQUNsRDtBQUNGOztBQUVBO0VBQ0UsMENBQTBDO0VBQzFDLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osY0FBYztFQUNkLFdBQVc7QUFDYiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1haW4ge1xyXG4gIC8qIG1heC13aWR0aDogNjAwcHg7ICovXHJcbiAgbWFyZ2luOiAwcHggYXV0bztcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NTBweCkge1xyXG4gIC5tYWluIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlYWVjZWQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICAvKiBwYWRkaW5nOiAxMHB4OyAqL1xyXG4gICAgd2lkdGg6IDUwMHB4O1xyXG4gICAgbWFyZ2luOiAwcHggYXV0bztcclxuICAgIG1pbi1oZWlnaHQ6IDYwMHB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XHJcbiAgICBtYXgtaGVpZ2h0OiBmaXQtY29udGVudDtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IDZweCAyMHB4IDIwcHggcmdiKDI0MywgMjQzLCAyNDMpO1xyXG4gICAgLW1vei1ib3gtc2hhZG93OiAwcHggNnB4IDIwcHggMjBweCByZ2IoMjQzLCAyNDMsIDI0Myk7XHJcbiAgICBib3gtc2hhZG93OiAwcHggNnB4IDIwcHggMjBweCByZ2IoMjQzLCAyNDMsIDI0Myk7XHJcbiAgfVxyXG59XHJcblxyXG4uc3Bpbm5lciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgei1pbmRleDogMTAwMDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuIl19 */\"","import { Component, HostListener, Input, OnInit } from \"@angular/core\";\r\nimport { AuthenticationService } from \"./services/Auth/authentication.service\";\r\nimport { slider } from \"./CommonModule/route-animations\";\r\nimport {\r\n RouterOutlet,\r\n Router,\r\n NavigationStart,\r\n NavigationEnd,\r\n ActivatedRoute,\r\n NavigationError,\r\n} from \"@angular/router\";\r\nimport { BreakpointObserver, Breakpoints } from \"@angular/cdk/layout\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport {\r\n BCBSLA_THEME,\r\n VANTAGE_THEME,\r\n BCBSLA,\r\n VANTAGE,\r\n} from \"./CommonModule/constants\";\r\nimport { OverlayContainer } from \"@angular/cdk/overlay\";\r\nimport { LoaderService } from \"./services/Loader/loader.service\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { RecordingService } from \"./services/Recording/recording.service\";\r\nimport { filter } from \"rxjs/operators\";\r\n\r\n\r\n@Component({\r\n selector: \"app-root\",\r\n templateUrl: \"./app.component.html\",\r\n styleUrls: [\"./app.component.css\"],\r\n animations: [slider],\r\n})\r\nexport class AppComponent implements OnInit {\r\n isMobile: boolean = true;\r\n\r\n title = \"payment-angular\";\r\n appTheme;\r\n showLoadingIndicator:boolean = true;\r\n isRouteHome = true;\r\n isAdmin: boolean\r\n constructor(\r\n // public auth: AuthenticationService,\r\n breakpointObserver: BreakpointObserver,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private overlayContainer: OverlayContainer,\r\n public loaderService: LoaderService,\r\n private recordingService: RecordingService\r\n ) {\r\n breakpointObserver\r\n .observe(Breakpoints.HandsetPortrait)\r\n .subscribe((result) => {\r\n if (result.matches) {\r\n this.isMobile = true;\r\n } else {\r\n this.isMobile = false;\r\n }\r\n });\r\n\r\n this.router.events.subscribe((routerEvent) => {\r\n // if (routerEvent instanceof NavigationStart) {\r\n // this.loaderService.isLoading.next(true);\r\n // }\r\n\r\n // if (routerEvent instanceof NavigationEnd) {\r\n // this.loaderService.isLoading.next(false);\r\n // }\r\n\r\n if (routerEvent instanceof NavigationError) {\r\n this.loaderService.hideLoadingSpinner();\r\n this.router.navigateByUrl(\"/error\");\r\n }\r\n });\r\n\r\n // this.showLoadingIndicator = this.loaderService.isLoading;\r\n if (environment.organization === BCBSLA) {\r\n this.appTheme = BCBSLA_THEME;\r\n } else if (environment.organization === VANTAGE) {\r\n this.appTheme = VANTAGE_THEME;\r\n }\r\n this.overlayContainer.getContainerElement().classList.add(this.appTheme);\r\n }\r\n ngOnInit(): void {\r\n console.log(\"about to pause\")\r\n this.router.events.pipe(filter(x => x instanceof NavigationEnd)).subscribe((navEnd: NavigationEnd) => {\r\n if(navEnd.urlAfterRedirects.indexOf('admin-payment') > 0){\r\n try{\r\n this.recordingService.pause().subscribe(answer => {\r\n console.log(\"in pause sub\")\r\n if(!answer){\r\n alert(\"Call not paused\");\r\n } \r\n },\r\n error => {\r\n console.log(\"in error\")\r\n console.log(error);\r\n },\r\n )\r\n } catch(e){\r\n \r\n } \r\n }\r\n })\r\n this.route.queryParams.subscribe((data) => {\r\n if (data.source == \"PortalPayment\") {\r\n this.router.navigateByUrl(\"/portal-payment\");\r\n } else if (data.source == \"AdminPayment\") {\r\n this.isAdmin = true;\r\n console.log(\"In admin, about to pause\")\r\n try{\r\n this.recordingService.pause().subscribe(answer => {\r\n console.log(\"in pause sub\")\r\n if(!answer){\r\n alert(\"Call not paused\");\r\n } \r\n },\r\n error => {\r\n console.log(\"in error\")\r\n console.log(error);\r\n },\r\n )\r\n } catch(e){\r\n \r\n } \r\n \r\n this.router.navigateByUrl(\"/admin-payment\");\r\n } else if (data.source == \"OneTimePayment\") {\r\n this.router.navigateByUrl(\"/one-time-payment\");\r\n } else if (data.source == \"OpenPayment\") {\r\n this.router.navigateByUrl(\"/open-payment\");\r\n }\r\n });\r\n \r\n }\r\n \r\n @HostListener('window:unload', [ '$event' ])\r\n unloadHandler(event): void{\r\n console.log(\"calling resume\")\r\n this.recordingService.resume().subscribe(answer => {\r\n console.log(\"in pause sub\");\r\n if(!answer){\r\n alert(\"Call not resumed\");\r\n } \r\n })\r\n }\r\n\r\n @HostListener('window:beforeunload', [ '$event' ])\r\n beforeUnloadHandler(event) {\r\n console.log(\"calling resume\")\r\n this.recordingService.resume().subscribe(answer => {\r\n console.log(\"in pause sub\");\r\n if(!answer){\r\n alert(\"Call not resumed\");\r\n } \r\n })\r\n }\r\n\r\n prepareRoute(outlet: RouterOutlet) {\r\n if (!this.isMobile) {\r\n return outlet;\r\n } else {\r\n return (\r\n outlet &&\r\n outlet.activatedRouteData &&\r\n outlet.activatedRouteData[\"animation\"]\r\n );\r\n }\r\n }\r\n}\r\n","import * as ngCore from \"@angular/core\";\r\nimport { BrowserModule } from \"@angular/platform-browser\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { EmbeddableWidgetsModule } from \"@acpaas-ui/ngx-embeddable-widgets\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\nimport { CreditCardDirectivesModule } from \"angular-cc-library\";\r\nimport { RecaptchaModule } from \"ng-recaptcha\";\r\n\r\nimport { AppRoutingModule } from \"./CommonModule/app-routing.module\";\r\nimport { AppComponent } from \"./app.component\";\r\nimport { CheckoutComponent } from \"./pages/checkout/checkout.component\";\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { NavbarComponent } from \"./components/navbar/navbar.component\";\r\nimport { ProfileComponent } from \"./components/profile/profile.component\";\r\nimport { MaterialModule } from \"./CommonModule/app-material.module\";\r\nimport { HomeComponent } from \"./pages/home/home.component\";\r\nimport { SelectPaymentComponent } from \"./pages/select-payment/select-payment.component\";\r\nimport { SpinnerComponent } from \"./components/spinner/spinner.component\";\r\nimport { AddPaymentComponent } from \"./pages/add-payment/add-payment.component\";\r\nimport { CreditCardComponent } from \"./pages/credit-card/credit-card.component\";\r\nimport { DialogComponent } from \"./components/dialog/dialog.component\";\r\nimport { SelectAddressComponent } from \"./pages/select-address/select-address.component\";\r\nimport { AddAddressComponent } from \"./components/add-address/add-address.component\";\r\nimport { LogoutComponent } from \"./pages/logout/logout.component\";\r\nimport { LoginHandleComponent } from \"./components/login-handle/login-handle.component\";\r\nimport { PaymentReviewComponent } from \"./pages/payment-review/payment-review.component\";\r\nimport { ErrorComponent } from \"./pages/error/error.component\";\r\nimport { AddAchComponent } from \"./pages/add-ach/add-ach.component\";\r\nimport { OneTimePaymentComponent } from \"./pages/one-time-payment/one-time-payment.component\";\r\nimport { NumberOnlyDirective } from \"./directives/number.directive\";\r\nimport { MatFormFieldModule, MatInputModule, MatProgressSpinner, MatProgressSpinnerModule } from '@angular/material';\r\nimport { EditPaymentComponent } from './pages/edit-payment/edit-payment.component';\r\nimport { StopRecurringPaymentComponent } from './pages/stop-recurring-payment/stop-recurring-payment.component';\r\nimport { MemberStopRecurringPaymentComponent } from './pages/member-stop-recurring-payment/member-stop-recurring-payment.component';\r\nimport { HixRedirectComponent } from './pages/hix-redirect/hix-redirect.component';\r\nimport { OpenPaymentComponent } from './pages/open-payment/open-payment.component';\r\nimport { PhoneMasksDirectiveDirective } from './directives/phone-masks-directive.directive';\r\n// declare var Iconfig: any;\r\n// export let options: Partial | (() => Partial);\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n CheckoutComponent,\r\n NavbarComponent,\r\n ProfileComponent,\r\n HomeComponent,\r\n SelectPaymentComponent,\r\n SpinnerComponent,\r\n AddPaymentComponent,\r\n CreditCardComponent,\r\n DialogComponent,\r\n SelectAddressComponent,\r\n AddAddressComponent,\r\n LogoutComponent,\r\n LoginHandleComponent,\r\n PaymentReviewComponent,\r\n ErrorComponent,\r\n AddAchComponent,\r\n OneTimePaymentComponent,\r\n NumberOnlyDirective,\r\n EditPaymentComponent,\r\n StopRecurringPaymentComponent,\r\n MemberStopRecurringPaymentComponent,\r\n HixRedirectComponent,\r\n OpenPaymentComponent,\r\n PhoneMasksDirectiveDirective\r\n ],\r\n entryComponents: [DialogComponent],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n FormsModule,\r\n HttpClientModule,\r\n EmbeddableWidgetsModule,\r\n BrowserAnimationsModule,\r\n MaterialModule,\r\n ReactiveFormsModule,\r\n CreditCardDirectivesModule,\r\n RecaptchaModule,\r\n MatProgressSpinnerModule,\r\n MatInputModule,\r\n MatFormFieldModule\r\n ],\r\n exports: [PhoneMasksDirectiveDirective],\r\n providers: [],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","export default \".full-width {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.two-section {\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -ms-flex-pack: justify;\\r\\n justify-content: space-between;\\r\\n}\\r\\n\\r\\n.two-section mat-form-field {\\r\\n width: 45%;\\r\\n}\\r\\n\\r\\n.addresssubtitle {\\r\\n color: grey;\\r\\n font-size: small;\\r\\n}\\r\\n\\r\\n.address-radio-group {\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n}\\r\\n\\r\\n.loading-address {\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n height: 100px;\\r\\n -ms-flex-align: center;\\r\\n align-items: center;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hZGQtYWRkcmVzcy9hZGQtYWRkcmVzcy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0Usb0JBQWE7RUFBYixhQUFhO0VBQ2Isc0JBQThCO01BQTlCLDhCQUE4QjtBQUNoQzs7QUFFQTtFQUNFLFVBQVU7QUFDWjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxvQkFBYTtFQUFiLGFBQWE7RUFDYiwwQkFBc0I7TUFBdEIsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0Usb0JBQWE7RUFBYixhQUFhO0VBQ2IsYUFBYTtFQUNiLHNCQUFtQjtNQUFuQixtQkFBbUI7RUFDbkIscUJBQXVCO01BQXZCLHVCQUF1QjtFQUN2QiwwQkFBc0I7TUFBdEIsc0JBQXNCO0FBQ3hCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9hZGQtYWRkcmVzcy9hZGQtYWRkcmVzcy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZ1bGwtd2lkdGgge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4udHdvLXNlY3Rpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG59XHJcblxyXG4udHdvLXNlY3Rpb24gbWF0LWZvcm0tZmllbGQge1xyXG4gIHdpZHRoOiA0NSU7XHJcbn1cclxuXHJcbi5hZGRyZXNzc3VidGl0bGUge1xyXG4gIGNvbG9yOiBncmV5O1xyXG4gIGZvbnQtc2l6ZTogc21hbGw7XHJcbn1cclxuXHJcbi5hZGRyZXNzLXJhZGlvLWdyb3VwIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuXHJcbi5sb2FkaW5nLWFkZHJlc3Mge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgaGVpZ2h0OiAxMDBweDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuIl19 */\"","import { Component, OnInit, Output, EventEmitter, Input, OnDestroy } from \"@angular/core\";\r\nimport { FormBuilder, Validators, FormControl } from \"@angular/forms\";\r\nimport { Router } from \"@angular/router\";\r\nimport { AddressService } from \"src/app/services/Address/address.service\";\r\nimport { Address } from \"src/app/models/address.model\";\r\nimport { CustomerService } from \"src/app/services/Customer/customer.service\";\r\nimport { Customer } from \"src/app/models/customer.model\";\r\nimport { states } from \"./allStates\";\r\nimport { AddressUtils } from \"src/app/CommonModule/addressUtils\";\r\nimport { BehaviorSubject, Subscription } from \"rxjs\";\r\nimport { finalize } from 'rxjs/operators';\r\nimport { PaymentService } from 'src/app/services/Payment/payment.service';\r\nimport { isEmpty } from \"src/app/CommonModule/isEmpty\";\r\n\r\n@Component({\r\n selector: \"app-add-address\",\r\n templateUrl: \"./add-address.component.html\",\r\n styleUrls: [\"./add-address.component.css\"],\r\n})\r\nexport class AddAddressComponent implements OnInit, OnDestroy {\r\n objectKeys = Object.keys;\r\n addAddressForm;\r\n public customer: Customer;\r\n public allStates = states;\r\n public isLoading: boolean;\r\n\r\n public addresses: BehaviorSubject;\r\n public addingAddress: boolean = false;\r\n @Input()\r\n selectedAddress: Address;\r\n @Output()\r\n addressEvent = new EventEmitter
();\r\n subscription: Subscription;\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private router: Router,\r\n private addressService: AddressService,\r\n private customerService: CustomerService,\r\n private paymentService: PaymentService\r\n ) {\r\n // this.customerService.getCustomer().subscribe((data) => {\r\n // this.customer = data;\r\n // console.log(typeof data);\r\n // });\r\n\r\n this.customerService.customer.subscribe(\r\n (customer) => {\r\n if(customer.customerID) {\r\n this.subscription =\r\n this.paymentService.paymentMethodsSubject.subscribe(\r\n pms => {\r\n if(pms !=null && pms.length >0) this.getAddressesAttachedToPaymentMethods();\r\n else this.getAllAddresses();\r\n });\r\n (this.customer = customer)\r\n } else {\r\n this.addingAddress = true;\r\n }\r\n },\r\n (err) => console.log(err)\r\n );\r\n\r\n this.addAddressForm = this.formBuilder.group({\r\n line1: new FormControl(\"\", [Validators.required]),\r\n line2: new FormControl(\"\", []),\r\n city: new FormControl(\"\", [Validators.required]),\r\n state: new FormControl(\"\", [Validators.required]),\r\n zip: new FormControl(\"\", [\r\n Validators.required,\r\n Validators.minLength(5),\r\n Validators.maxLength(5),\r\n ]),\r\n phone: new FormControl(\"\", [\r\n Validators.minLength(10),\r\n Validators.maxLength(10),\r\n ]),\r\n addressRadio: new FormControl(\"\", []),\r\n });\r\n\r\n this.addresses = this.addressService.addresses;\r\n\r\n\r\n\r\n }\r\n ngOnDestroy(): void {\r\n if(this.subscription)\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n getAddress(): Address {\r\n let address : Address;\r\n let addressSource: string = AddressUtils.WebUser;\r\n this.addAddressForm.markAllAsTouched();\r\n if (this.addingAddress && this.addAddressForm.valid) {\r\n address = new Address().deserialize(this.addAddressForm.value);\r\n address.line2 = address.line2 === null? \"\": address.line2;\r\n address.phone = address.phone === null? \"\": address.phone;\r\n\r\n } else if (!this.addingAddress) {\r\n if (this.addAddressForm.controls.addressRadio.value) {\r\n address = this.addresses.value.filter(\r\n (address) =>\r\n address.addressId ===\r\n this.addAddressForm.controls.addressRadio.value\r\n )[0];\r\n } else {\r\n address = this.addresses.value[0];\r\n }\r\n } else {\r\n return null;\r\n }\r\n\r\n if (this.customer && this.customer.fullName) {\r\n address.name = this.customer.fullName + \"'s Address\";\r\n }\r\n if(this.router.url.split(\"/\")[1] === \"admin-payment\"){\r\n address.addressSource = AddressUtils.AdminUser;\r\n } else {\r\n address.addressSource = AddressUtils.WebUser;\r\n address.name = isEmpty(address.name) ? \"OTP User Address\": address.name;\r\n }\r\n return address;\r\n }\r\n\r\n toggleAddAddress() {\r\n this.addingAddress = !this.addingAddress;\r\n this.resetAddressForm();\r\n }\r\n\r\n resetAddressForm() {\r\n for (\r\n let index = 0;\r\n index < Object.keys(this.addAddressForm.controls).length - 1;\r\n index++\r\n ) {\r\n const element = Object.keys(this.addAddressForm.controls)[index];\r\n this.addAddressForm.controls[element].reset();\r\n }\r\n // Object.keys(this.addAddressForm.controls).forEach((key) => {\r\n // this.addAddressForm.controls[key].markAsDirty();\r\n // });\r\n }\r\n\r\n getAddressesAttachedToPaymentMethods(){\r\n this.isLoading = true;\r\n this.addressService\r\n .getAddresses()\r\n .subscribe(\r\n (data) => {\r\n if (data && data.length > 0) {\r\n this.addingAddress = false;\r\n const uniqueAddresses = AddressUtils.getUniqueAddresses(data);\r\n if(this.selectedAddress) {\r\n let addressId = AddressUtils.getIdFromAddress(uniqueAddresses, this.selectedAddress);\r\n this.addAddressForm.patchValue({\r\n addressRadio: addressId,\r\n });\r\n } else {\r\n this.addAddressForm.patchValue({\r\n addressRadio: uniqueAddresses[0].addressId,\r\n });\r\n }\r\n this.addressService.addresses.next(uniqueAddresses);\r\n this.isLoading = false;\r\n // this.addresses = uniqueAddresses;\r\n // this.addPaymentMethodForm.\r\n }\r\n this.addressService.addresses.subscribe((address) => {\r\n if (address.length === 0) this.addingAddress = true;\r\n else {\r\n this.addingAddress = false;\r\n }\r\n });\r\n // else if (this.addressService.addresses.value.length === 0) {\r\n // this.addingAddress = true;\r\n // this.addressService.addresses.next(data);\r\n // this.addresses = data;\r\n // }\r\n },\r\n (err) => {\r\n this.addingAddress = true;\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n getAllAddresses(){\r\n this.isLoading = true;\r\n this.addressService\r\n .getAllAddresses()\r\n .subscribe(\r\n (data) => {\r\n if (data && data.length > 0) {\r\n this.addingAddress = false;\r\n const uniqueAddresses = AddressUtils.getUniqueAddresses(data);\r\n if(this.selectedAddress) {\r\n let addressId = AddressUtils.getIdFromAddress(uniqueAddresses, this.selectedAddress);\r\n this.addAddressForm.patchValue({\r\n addressRadio: addressId,\r\n });\r\n } else {\r\n this.addAddressForm.patchValue({\r\n addressRadio: uniqueAddresses[0].addressId,\r\n });\r\n }\r\n\r\n this.addressService.addresses.next(uniqueAddresses);\r\n this.isLoading = false;\r\n // this.addresses = uniqueAddresses;\r\n // this.addPaymentMethodForm.\r\n }\r\n this.addressService.addresses.subscribe((address) => {\r\n if (address.length === 0) this.addingAddress = true;\r\n else {\r\n this.addingAddress = false;\r\n }\r\n });\r\n // else if (this.addressService.addresses.value.length === 0) {\r\n // this.addingAddress = true;\r\n // this.addressService.addresses.next(data);\r\n // this.addresses = data;\r\n // }\r\n },\r\n (err) => {\r\n this.isLoading = false\r\n this.addingAddress = true;\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n\r\n}\r\n","export const states = {\r\n AL: \"Alabama\",\r\n AK: \"Alaska\",\r\n AS: \"American Samoa\",\r\n AZ: \"Arizona\",\r\n AR: \"Arkansas\",\r\n CA: \"California\",\r\n CO: \"Colorado\",\r\n CT: \"Connecticut\",\r\n DE: \"Delaware\",\r\n DC: \"District Of Columbia\",\r\n FM: \"Federated States Of Micronesia\",\r\n FL: \"Florida\",\r\n GA: \"Georgia\",\r\n GU: \"Guam\",\r\n HI: \"Hawaii\",\r\n ID: \"Idaho\",\r\n IL: \"Illinois\",\r\n IN: \"Indiana\",\r\n IA: \"Iowa\",\r\n KS: \"Kansas\",\r\n KY: \"Kentucky\",\r\n LA: \"Louisiana\",\r\n ME: \"Maine\",\r\n MH: \"Marshall Islands\",\r\n MD: \"Maryland\",\r\n MA: \"Massachusetts\",\r\n MI: \"Michigan\",\r\n MN: \"Minnesota\",\r\n MS: \"Mississippi\",\r\n MO: \"Missouri\",\r\n MT: \"Montana\",\r\n NE: \"Nebraska\",\r\n NV: \"Nevada\",\r\n NH: \"New Hampshire\",\r\n NJ: \"New Jersey\",\r\n NM: \"New Mexico\",\r\n NY: \"New York\",\r\n NC: \"North Carolina\",\r\n ND: \"North Dakota\",\r\n MP: \"Northern Mariana Islands\",\r\n OH: \"Ohio\",\r\n OK: \"Oklahoma\",\r\n OR: \"Oregon\",\r\n PW: \"Palau\",\r\n PA: \"Pennsylvania\",\r\n PR: \"Puerto Rico\",\r\n RI: \"Rhode Island\",\r\n SC: \"South Carolina\",\r\n SD: \"South Dakota\",\r\n TN: \"Tennessee\",\r\n TX: \"Texas\",\r\n UT: \"Utah\",\r\n VT: \"Vermont\",\r\n VI: \"Virgin Islands\",\r\n VA: \"Virginia\",\r\n WA: \"Washington\",\r\n WV: \"West Virginia\",\r\n WI: \"Wisconsin\",\r\n WY: \"Wyoming\",\r\n};\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit, Inject } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material\";\r\n\r\n@Component({\r\n selector: \"app-dialog\",\r\n templateUrl: \"./dialog.component.html\",\r\n styleUrls: [\"./dialog.component.css\"],\r\n})\r\nexport class DialogComponent {\r\n public DialogTypeEnum = DialogType;\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData\r\n ) {}\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n\r\nexport class DialogData {\r\n message: string;\r\n type: DialogType;\r\n}\r\n\r\nexport enum DialogType {\r\n Confirmation,\r\n Alert,\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbG9naW4taGFuZGxlL2xvZ2luLWhhbmRsZS5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit } from \"@angular/core\";\r\nimport { Auth0Service } from \"src/app/services/Auth/auth0.service\";\r\n\r\n@Component({\r\n selector: \"app-login-handle\",\r\n templateUrl: \"./login-handle.component.html\",\r\n styleUrls: [\"./login-handle.component.css\"]\r\n})\r\nexport class LoginHandleComponent implements OnInit {\r\n constructor(private auth0Service: Auth0Service) {}\r\n\r\n ngOnInit() {}\r\n}\r\n","export default \".spacer {\\r\\n -ms-flex: 1 1 auto;\\r\\n flex: 1 1 auto;\\r\\n}\\r\\n\\r\\na {\\r\\n margin: 0px auto;\\r\\n text-decoration: none;\\r\\n color: white;\\r\\n /* font-size: ; */\\r\\n /* font-variant: small-caps; */\\r\\n font-weight: 500;\\r\\n font-size: large;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQkFBYztNQUFkLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIscUJBQXFCO0VBQ3JCLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsOEJBQThCO0VBQzlCLGdCQUFnQjtFQUNoQixnQkFBZ0I7QUFDbEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL25hdmJhci9uYXZiYXIuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5zcGFjZXIge1xyXG4gIGZsZXg6IDEgMSBhdXRvO1xyXG59XHJcblxyXG5hIHtcclxuICBtYXJnaW46IDBweCBhdXRvO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgLyogZm9udC1zaXplOiA7ICovXHJcbiAgLyogZm9udC12YXJpYW50OiBzbWFsbC1jYXBzOyAqL1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgZm9udC1zaXplOiBsYXJnZTtcclxufVxyXG4iXX0= */\"","import { Component, OnInit } from \"@angular/core\";\r\nimport { Location } from \"@angular/common\";\r\nimport { Auth0Service } from \"src/app/services/Auth/auth0.service\";\r\n// import { AuthenticationService } from \"src/app/services/Auth/authentication.service\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Component({\r\n selector: \"app-navbar\",\r\n templateUrl: \"./navbar.component.html\",\r\n styleUrls: [\"./navbar.component.css\"],\r\n})\r\nexport class NavbarComponent implements OnInit {\r\n title: string;\r\n backButtonVisible: boolean = false;\r\n constructor(\r\n public auth0: Auth0Service,\r\n // public auth: AuthenticationService,\r\n public router: Router,\r\n public location: Location\r\n ) {\r\n this.location.onUrlChange((url) => {\r\n switch (url) {\r\n case \"/portal-payment/paymentmethods\":\r\n case \"/admin-payment/paymentmethods\":\r\n case \"/one-time-payment/paymentmethods\":\r\n this.title = \"Select a payment method\";\r\n this.backButtonVisible = true;\r\n break;\r\n case \"/portal-payment/paymentmethods/newcc\":\r\n case \"/portal-payment/paymentmethods/newach\":\r\n case \"/admin-payment/paymentmethods/newcc\":\r\n case \"/admin-payment/paymentmethods/newach\":\r\n case \"/one-time-payment/paymentmethods/newcc\":\r\n case \"/one-time-payment/paymentmethods/newach\":\r\n this.title = \"Add a payment method\";\r\n this.backButtonVisible = true;\r\n break;\r\n\r\n case \"/portal-payment/paymentmethods/edit\":\r\n case \"/admin-payment/paymentmethods/edit\":\r\n this.title = \"Edit a payment method\";\r\n this.backButtonVisible = true;\r\n break;\r\n // case \"/portal-payment/addresses\":\r\n // this.title = \"Select a billing address\";\r\n // this.backButtonVisible = true;\r\n // break;\r\n // case \"/portal-payment/addresses/new\":\r\n // this.title = \"Add a new billing address\";\r\n // this.backButtonVisible = true;\r\n // break;\r\n case \"/portal-payment/review\":\r\n case \"/admin-payment/review\":\r\n case \"/one-time-payment/review\":\r\n this.title = \"Review\";\r\n this.backButtonVisible = true;\r\n break;\r\n case \"/admin-payment/stop-recurring\":\r\n this.title = \"Stop Payments\";\r\n this.backButtonVisible = true;\r\n break;\r\n default:\r\n this.title = \"Make a payment\";\r\n this.backButtonVisible = false;\r\n break;\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n popScreen() {\r\n let url = this.router.url.split(\"/\");\r\n url.pop();\r\n this.router.navigate(url);\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit } from \"@angular/core\";\r\nimport { Auth0Service } from \"src/app/services/Auth/auth0.service\";\r\n\r\n@Component({\r\n selector: \"app-profile\",\r\n templateUrl: \"./profile.component.html\",\r\n styleUrls: [\"./profile.component.css\"]\r\n})\r\nexport class ProfileComponent implements OnInit {\r\n profileJson: string = null;\r\n constructor(public auth: Auth0Service) {}\r\n\r\n ngOnInit() {\r\n this.auth.userProfile$.subscribe(\r\n profile => (this.profileJson = JSON.stringify(profile, null, 2))\r\n );\r\n }\r\n}\r\n","export default \"/* Theme for the ripple elements.*/\\n/* stylelint-disable material/no-prefixes */\\n/* stylelint-enable */\\n.spinner-container {\\n position: absolute;\\n z-index: 854;\\n /* height: 2em; */\\n /* width: 2em; */\\n overflow: visible;\\n margin: auto;\\n left: calc(50vw - 80px);\\n top: calc(50vh - 80px);\\n}\\n.logo {\\n padding-top: 50px;\\n padding-left: 26px;\\n position: absolute;\\n height: inherit;\\n width: inherit;\\n color: #00529b;\\n font-size: 50px;\\n -webkit-animation: none;\\n animation: none;\\n}\\n.loader-primary {\\n border-width: 10px;\\n border-radius: 50%;\\n border-top: medium;\\n border-right: solid rgba(0, 0, 0, 0);\\n width: 150px;\\n height: 150px;\\n -webkit-animation: spin 0.5s linear infinite;\\n animation: spin 0.5s linear infinite;\\n animation-direction: reverse;\\n}\\n.vantage-loader-colors {\\n border-left: dashed #1565c0;\\n border-bottom: solid #1565c0;\\n}\\n.bcbsla-loader-colors {\\n border-left: dashed #03a9f4;\\n border-bottom: solid #03a9f4;\\n}\\n@-webkit-keyframes spin {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 50% {\\n transform: rotate(180deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes spin {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 50% {\\n transform: rotate(180deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zcGlubmVyL0M6XFxVc2Vyc1xcdmRoYWthbFxcc291cmNlXFxyZXBvc1xcdmFudGFnZS1wYXltZW50LXBvcnRhbFxcVmFudGFnZVBheW1lbnRDb3JlQW5ndWxhclxcQ2xpZW50QXBwL25vZGVfbW9kdWxlc1xcQGFuZ3VsYXJcXG1hdGVyaWFsXFxfdGhlbWluZy5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3NwaW5uZXIvQzpcXFVzZXJzXFx2ZGhha2FsXFxzb3VyY2VcXHJlcG9zXFx2YW50YWdlLXBheW1lbnQtcG9ydGFsXFxWYW50YWdlUGF5bWVudENvcmVBbmd1bGFyXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHNwaW5uZXJcXHNwaW5uZXIuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTAxQ0Esa0NBQUE7QUE2aURBLDJDQUFBO0FBd0NBLHFCQUFBO0FDMzZGQTtFQUNFLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7RUFDQSx1QkFBQTtFQUNBLHNCQUFBO0FDQUY7QURHQTtFQUNFLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0VBQ0EsY0FBQTtFQUNBLGVBQUE7RUFDQSx1QkFBQTtVQUFBLGVBQUE7QUNBRjtBREdBO0VBQ0Usa0JBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0Esb0NBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLDRDQUFBO1VBQUEsb0NBQUE7RUFDQSw0QkFBQTtBQ0FGO0FER0E7RUFDRSwyQkFBQTtFQUNBLDRCQUFBO0FDQUY7QURHQTtFQUNFLDJCQUFBO0VBQ0EsNEJBQUE7QUNBRjtBREdBO0VBQ0U7SUFFRSx1QkFBQTtFQ0FGO0VER0E7SUFFRSx5QkFBQTtFQ0RGO0VESUE7SUFFRSx5QkFBQTtFQ0ZGO0FBQ0Y7QURaQTtFQUNFO0lBRUUsdUJBQUE7RUNBRjtFREdBO0lBRUUseUJBQUE7RUNERjtFRElBO0lBRUUseUJBQUE7RUNGRjtBQUNGIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnQgYWxsIHRoZSB0aGVtaW5nIGZ1bmN0aW9uYWxpdHkuXG4vLyBXZSBjYW4gdXNlIHJlbGF0aXZlIGltcG9ydHMgZm9yIGltcG9ydHMgZnJvbSB0aGUgY2RrIGJlY2F1c2Ugd2UgYnVuZGxlIGV2ZXJ5dGhpbmdcbi8vIHVwIGludG8gYSBzaW5nbGUgZmxhdCBzY3NzIGZpbGUgZm9yIG1hdGVyaWFsLlxuLy8gV2Ugd2FudCBvdmVybGF5cyB0byBhbHdheXMgYXBwZWFyIG92ZXIgdXNlciBjb250ZW50LCBzbyBzZXQgYSBiYXNlbGluZVxuLy8gdmVyeSBoaWdoIHotaW5kZXggZm9yIHRoZSBvdmVybGF5IGNvbnRhaW5lciwgd2hpY2ggaXMgd2hlcmUgd2UgY3JlYXRlIHRoZSBuZXdcbi8vIHN0YWNraW5nIGNvbnRleHQgZm9yIGFsbCBvdmVybGF5cy5cbiRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjogMTAwMCAhZGVmYXVsdDtcbiRjZGstei1pbmRleC1vdmVybGF5OiAxMDAwICFkZWZhdWx0O1xuJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A6IDEwMDAgIWRlZmF1bHQ7XG5cbi8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFsbCBvZiB0aGUgYmFja2Ryb3BzXG4kY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzIpICFkZWZhdWx0O1xuXG4vLyBEZWZhdWx0IGJhY2tkcm9wIGFuaW1hdGlvbiBpcyBiYXNlZCBvbiB0aGUgTWF0ZXJpYWwgRGVzaWduIHN3aWZ0LWVhc2Utb3V0LlxuJGJhY2tkcm9wLWFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXMgIWRlZmF1bHQ7XG4kYmFja2Ryb3AtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSkgIWRlZmF1bHQ7XG5cblxuQG1peGluIGNkay1vdmVybGF5KCkge1xuICAuY2RrLW92ZXJsYXktY29udGFpbmVyLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIC8vIERpc2FibGUgZXZlbnRzIGZyb20gYmVpbmcgY2FwdHVyZWQgb24gdGhlIG92ZXJsYXkgY29udGFpbmVyLlxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgLy8gVGhlIGNvbnRhaW5lciBzaG91bGQgYmUgdGhlIHNpemUgb2YgdGhlIHZpZXdwb3J0LlxuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIFRoZSBvdmVybGF5LWNvbnRhaW5lciBpcyBhbiBpbnZpc2libGUgZWxlbWVudCB3aGljaCBjb250YWlucyBhbGwgaW5kaXZpZHVhbCBvdmVybGF5cy5cbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjtcblxuICAgICY6ZW1wdHkge1xuICAgICAgLy8gSGlkZSB0aGUgZWxlbWVudCB3aGVuIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgY2hpbGQgbm9kZXMuIFRoaXMgZG9lc24ndFxuICAgICAgLy8gaW5jbHVkZSBvdmVybGF5cyB0aGF0IGhhdmUgYmVlbiBkZXRhY2hlZCwgcmF0aGVyIHRoYW4gZGlzcG9zZWQuXG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIHVzZSBhbiBleHRyYSB3cmFwcGVyIGVsZW1lbnQgaW4gb3JkZXIgdG8gdXNlIG1ha2UgdGhlIG92ZXJsYXkgaXRzZWxmIGEgZmxleCBpdGVtLlxuICAvLyBUaGlzIG1ha2VzIGNlbnRlcmluZyB0aGUgb3ZlcmxheSBlYXN5IHdpdGhvdXQgcnVubmluZyBpbnRvIHRoZSBzdWJwaXhlbCByZW5kZXJpbmdcbiAgLy8gcHJvYmxlbXMgdGllZCB0byB1c2luZyBgdHJhbnNmb3JtYCBhbmQgd2l0aG91dCBpbnRlcmZlcmluZyB3aXRoIHRoZSBvdGhlciBwb3NpdGlvblxuICAvLyBzdHJhdGVnaWVzLlxuICAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuICB9XG5cbiAgLy8gQSBzaW5nbGUgb3ZlcmxheSBwYW5lLlxuICAuY2RrLW92ZXJsYXktcGFuZSB7XG4gICAgLy8gTm90ZTogaXQncyBpbXBvcnRhbnQgZm9yIHRoaXMgb25lIHRvIHN0YXJ0IG9mZiBgYWJzb2x1dGVgLFxuICAgIC8vIGluIG9yZGVyIGZvciB1cyB0byBiZSBhYmxlIHRvIG1lYXN1cmUgaXQgY29ycmVjdGx5LlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuXG4gICAgLy8gRm9yIGNvbm5lY3RlZC1wb3NpdGlvbiBvdmVybGF5cywgd2Ugc2V0IGBkaXNwbGF5OiBmbGV4YCBpblxuICAgIC8vIG9yZGVyIHRvIGZvcmNlIGBtYXgtd2lkdGhgIGFuZCBgbWF4LWhlaWdodGAgdG8gdGFrZSBlZmZlY3QuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1iYWNrZHJvcCB7XG4gICAgLy8gVE9ETyhqZWxib3Vybik6IHJldXNlIHNpZGVuYXYgZnVsbHNjcmVlbiBtaXhpbi5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb24gJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb247XG4gICAgb3BhY2l0eTogMDtcblxuICAgICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlIHJnYmEgYmFja2dyb3VuZCB3aWxsIGJlY29tZSBzb2xpZCBzbyB3ZSBuZWVkIHRvIGZhbGwgYmFja1xuICAgICAgLy8gdG8gbWFraW5nIGl0IG9wYXF1ZSB1c2luZyBgb3BhY2l0eWAuIE5vdGUgdGhhdCB3ZSBjYW4ndCB1c2UgdGhlIGBjZGstaGlnaC1jb250cmFzdGBcbiAgICAgIC8vIG1peGluLCBiZWNhdXNlIHdlIGNhbid0IG5vcm1hbGl6ZSB0aGUgaW1wb3J0IHBhdGggdG8gdGhlIF9hMTF5LnNjc3MgYm90aCBmb3IgdGhlXG4gICAgICAvLyBzb3VyY2UgYW5kIHdoZW4gdGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkLiBTZWUgIzEwOTA4LlxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wIHtcbiAgICBiYWNrZ3JvdW5kOiAkY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIHtcbiAgICAvLyBOb3RlOiBhcyBvZiBGaXJlZm94IDU3LCBoYXZpbmcgdGhlIGJhY2tkcm9wIGJlIGBiYWNrZ3JvdW5kOiBub25lYCB3aWxsIHByZXZlbnQgaXQgZnJvbVxuICAgIC8vIGNhcHR1cmluZyB0aGUgdXNlcidzIG1vdXNlIHNjcm9sbCBldmVudHMuIFNpbmNlIHdlIGFsc28gY2FuJ3QgdXNlIHNvbWV0aGluZyBsaWtlXG4gICAgLy8gYHJnYmEoMCwgMCwgMCwgMClgLCB3ZSB3b3JrIGFyb3VuZCB0aGUgaW5jb25zaXN0ZW5jeSBieSBub3Qgc2V0dGluZyB0aGUgYmFja2dyb3VuZCBhdFxuICAgIC8vIGFsbCBhbmQgdXNpbmcgYG9wYWNpdHlgIHRvIG1ha2UgdGhlIGVsZW1lbnQgdHJhbnNwYXJlbnQuXG4gICAgJiwgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gT3ZlcmxheSBwYXJlbnQgZWxlbWVudCB1c2VkIHdpdGggdGhlIGNvbm5lY3RlZCBwb3NpdGlvbiBzdHJhdGVneS4gVXNlZCB0byBjb25zdHJhaW4gdGhlXG4gIC8vIG92ZXJsYXkgZWxlbWVudCdzIHNpemUgdG8gZml0IHdpdGhpbiB0aGUgdmlld3BvcnQuXG4gIC5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXk7XG5cbiAgICAvLyBXZSB1c2UgYGRpc3BsYXk6IGZsZXhgIG9uIHRoaXMgZWxlbWVudCBleGNsdXNpdmVseSBmb3IgY2VudGVyaW5nIGNvbm5lY3RlZCBvdmVybGF5cy5cbiAgICAvLyBXaGVuICpub3QqIGNlbnRlcmluZywgYSB0b3AvbGVmdC9ib3R0b20vcmlnaHQgd2lsbCBiZSBzZXQgd2hpY2ggb3ZlcnJpZGVzIHRoZSBub3JtYWxcbiAgICAvLyBmbGV4IGxheW91dC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLy8gV2UgdXNlIHRoZSBgY29sdW1uYCBkaXJlY3Rpb24gaGVyZSB0byBhdm9pZCBzb21lIGZsZXhib3ggaXNzdWVzIGluIEVkZ2VcbiAgICAvLyB3aGVuIHVzaW5nIHRoZSBcImdyb3cgYWZ0ZXIgb3BlblwiIG9wdGlvbnMuXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC8vIEFkZCBzb21lIGRpbWVuc2lvbnMgc28gdGhlIGVsZW1lbnQgaGFzIGFuIGBpbm5lclRleHRgIHdoaWNoIHNvbWUgcGVvcGxlIGRlcGVuZCBvbiBpbiB0ZXN0cy5cbiAgICBtaW4td2lkdGg6IDFweDtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gIH1cblxuICAvLyBVc2VkIHdoZW4gZGlzYWJsaW5nIGdsb2JhbCBzY3JvbGxpbmcuXG4gIC5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgICAvLyBOZWNlc3NhcnkgZm9yIHRoZSBjb250ZW50IG5vdCB0byBsb3NlIGl0cyB3aWR0aC4gTm90ZSB0aGF0IHdlJ3JlIHVzaW5nIDEwMCUsIGluc3RlYWQgb2ZcbiAgICAvLyAxMDB2dywgYmVjYXVzZSAxMDB2dyBpbmNsdWRlcyB0aGUgd2lkdGggcGx1cyB0aGUgc2Nyb2xsYmFyLCB3aGVyZWFzIDEwMCUgaXMgdGhlIHdpZHRoXG4gICAgLy8gdGhhdCB0aGUgZWxlbWVudCBoYWQgYmVmb3JlIHdlIG1hZGUgaXQgYGZpeGVkYC5cbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC8vIE5vdGU6IHRoaXMgd2lsbCBhbHdheXMgYWRkIGEgc2Nyb2xsYmFyIHRvIHdoYXRldmVyIGVsZW1lbnQgaXQgaXMgb24sIHdoaWNoIGNhblxuICAgIC8vIHBvdGVudGlhbGx5IHJlc3VsdCBpbiBkb3VibGUgc2Nyb2xsYmFycy4gSXQgc2hvdWxkbid0IGJlIGFuIGlzc3VlLCBiZWNhdXNlIHdlIHdvbid0XG4gICAgLy8gYmxvY2sgc2Nyb2xsaW5nIG9uIGEgcGFnZSB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHNjcm9sbGJhciBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICB9XG59XG5cbkBtaXhpbiBjZGstYTExeSB7XG4gIC5jZGstdmlzdWFsbHktaGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuXG4gICAgLy8gQXZvaWQgYnJvd3NlcnMgcmVuZGVyaW5nIHRoZSBmb2N1cyByaW5nIGluIHNvbWUgY2FzZXMuXG4gICAgb3V0bGluZTogMDtcblxuICAgIC8vIEF2b2lkIHNvbWUgY2FzZXMgd2hlcmUgdGhlIGJyb3dzZXIgd2lsbCBzdGlsbCByZW5kZXIgdGhlIG5hdGl2ZSBjb250cm9scyAoc2VlICM5MDQ5KS5cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICB9XG59XG5cbi8vIEFwcGxpZXMgc3R5bGVzIGZvciB1c2VycyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuIE5vdGUgdGhhdCB0aGlzIG9ubHkgYXBwbGllc1xuLy8gdG8gTWljcm9zb2Z0IGJyb3dzZXJzLiBDaHJvbWUgY2FuIGJlIGluY2x1ZGVkIGJ5IGNoZWNraW5nIGZvciB0aGUgYGh0bWxbaGNdYFxuLy8gYXR0cmlidXRlLCBob3dldmVyIENocm9tZSBoYW5kbGVzIGhpZ2ggY29udHJhc3QgZGlmZmVyZW50bHkuXG4vL1xuLy8gQHBhcmFtIHRhcmdldCBXaGljaCBraW5kIG9mIGhpZ2ggY29udHJhc3Qgc2V0dGluZyB0byB0YXJnZXQuIERlZmF1bHRzIHRvIGBhY3RpdmVgLCBjYW4gYmVcbi8vICAgIGB3aGl0ZS1vbi1ibGFja2Agb3IgYGJsYWNrLW9uLXdoaXRlYC5cbkBtaXhpbiBjZGstaGlnaC1jb250cmFzdCgkdGFyZ2V0OiBhY3RpdmUpIHtcbiAgQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogJHRhcmdldCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgZW5hYmxlIG1vbml0b3JpbmcgYXV0b2ZpbGwgc3RhdGUgb2YgdGV4dCBmaWVsZHMuXG5AbWl4aW4gY2RrLXRleHQtZmllbGQge1xuICAvLyBLZXlmcmFtZXMgdGhhdCBhcHBseSBubyBzdHlsZXMsIGJ1dCBhbGxvdyB1cyB0byBtb25pdG9yIHdoZW4gYW4gdGV4dCBmaWVsZCBiZWNvbWVzIGF1dG9maWxsZWRcbiAgLy8gYnkgd2F0Y2hpbmcgZm9yIHRoZSBhbmltYXRpb24gZXZlbnRzIHRoYXQgYXJlIGZpcmVkIHdoZW4gdGhleSBzdGFydC4gTm90ZTogdGhlIC8qISovIGNvbW1lbnQgaXNcbiAgLy8gbmVlZGVkIHRvIHByZXZlbnQgTGliU2FzcyBmcm9tIHN0cmlwcGluZyB0aGUga2V5ZnJhbWVzIG91dC5cbiAgLy8gQmFzZWQgb246IGh0dHBzOi8vbWVkaXVtLmNvbS9AYnJ1bm4vZGV0ZWN0aW5nLWF1dG9maWxsZWQtZmllbGRzLWluLWphdmFzY3JpcHQtYWVkNTk4ZDI1ZGE3XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgey8qISovfVxuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCB7LyohKi99XG5cbiAgLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQ7XG4gIH1cblxuICAuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQ7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIHJlc2l6ZSBoYW5kbGUgb24gYXV0b3NpemluZyB0ZXh0YXJlYXMsIGJlY2F1c2Ugd2hhdGV2ZXIgaGVpZ2h0XG4gIC8vIHRoZSB1c2VyIHJlc2l6ZWQgdG8gd2lsbCBiZSBvdmVyd3JpdHRlbiBvbmNlIHRoZXkgc3RhcnQgdHlwaW5nIGFnYWluLlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICAgIHJlc2l6ZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRoaXMgY2xhc3MgaXMgdGVtcG9yYXJpbHkgYXBwbGllZCB0byB0aGUgdGV4dGFyZWEgd2hlbiBpdCBpcyBiZWluZyBtZWFzdXJlZC4gSXQgaXMgaW1tZWRpYXRlbHlcbiAgLy8gcmVtb3ZlZCB3aGVuIG1lYXN1cmluZyBpcyBjb21wbGV0ZS4gV2UgdXNlIGAhaW1wb3J0YW50YCBydWxlcyBoZXJlIHRvIG1ha2Ugc3VyZSB1c2VyLXNwZWNpZmllZFxuICAvLyBydWxlcyBkbyBub3QgaW50ZXJmZXJlIHdpdGggdGhlIG1lYXN1cmVtZW50LlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nIHtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgLy8gSGF2aW5nIDJweCB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nIHNlZW1zIHRvIGZpeCBhIGJ1ZyB3aGVyZSBDaHJvbWUgZ2V0cyBhbiBpbmNvcnJlY3RcbiAgICAvLyBtZWFzdXJlbWVudC4gV2UganVzdCBoYXZlIHRvIGFjY291bnQgZm9yIGl0IGxhdGVyIGFuZCBzdWJ0cmFjdCBpdCBvZmYgdGhlIGZpbmFsIHJlc3VsdC5cbiAgICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gVXNlZCB0byBnZW5lcmF0ZSBVSURzIGZvciBrZXlmcmFtZXMgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQgZmllbGQgYXV0b2ZpbGwgc3R5bGVzLlxuJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OiAwO1xuXG4vLyBNaXhpbiB1c2VkIHRvIGFwcGx5IGN1c3RvbSBiYWNrZ3JvdW5kIGFuZCBmb3JlZ3JvdW5kIGNvbG9ycyB0byBhbiBhdXRvZmlsbGVkIHRleHQgZmllbGQuXG4vLyBCYXNlZCBvbjogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjc4MTU0OS9cbi8vIHJlbW92aW5nLWlucHV0LWJhY2tncm91bmQtY29sb3VyLWZvci1jaHJvbWUtYXV0b2NvbXBsZXRlI2Fuc3dlci0zNzQzMjI2MFxuQG1peGluIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yKCRiYWNrZ3JvdW5kLCAkZm9yZWdyb3VuZDonJykge1xuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSB7XG4gICAgdG8ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICBAaWYgJGZvcmVncm91bmQgIT0gJycgeyBjb2xvcjogJGZvcmVncm91bmQ7IH1cbiAgICB9XG4gIH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH07XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgfVxuXG4gICYuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCxcbiAgICAgICAgICAgICAgICAgICAgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9O1xuICB9XG5cbiAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OlxuICAgICAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50ICsgMSAhZ2xvYmFsO1xufVxuXG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXBwbHkgbWF0ZXJpYWwgZGVzaWduIHRyZWF0bWVudHMgdG8gYW55IGVsZW1lbnQuXG4vLyBNZWRpYSBxdWVyaWVzXG4vLyBUT0RPKGpvc2VwaHBlcnJvdHQpOiBDaGFuZ2UgJG1hdC14c21hbGwgYW5kICRtYXQtc21hbGwgdXNhZ2VzIHRvIHJlbHkgb24gQnJlYWtwb2ludE9ic2VydmVyLFxuJG1hdC14c21hbGw6ICdtYXgtd2lkdGg6IDU5OXB4JztcbiRtYXQtc21hbGw6ICdtYXgtd2lkdGg6IDk1OXB4JztcblxuLy8gVE9ETzogUmV2aXNpdCBhbGwgei1pbmRpY2VzIGJlZm9yZSBiZXRhXG4vLyB6LWluZGV4IG1hc3RlciBsaXN0XG5cbiR6LWluZGV4LWZhYjogMjAgIWRlZmF1bHQ7XG4kei1pbmRleC1kcmF3ZXI6IDEwMCAhZGVmYXVsdDtcblxuLy8gR2xvYmFsIGNvbnN0YW50c1xuJHBpOiAzLjE0MTU5MjY1O1xuXG4vLyBQYWRkaW5nIGJldHdlZW4gaW5wdXQgdG9nZ2xlcyBhbmQgdGhlaXIgbGFiZWxzXG4kbWF0LXRvZ2dsZS1wYWRkaW5nOiA4cHggIWRlZmF1bHQ7XG4vLyBXaWR0aCBhbmQgaGVpZ2h0IG9mIGlucHV0IHRvZ2dsZXNcbiRtYXQtdG9nZ2xlLXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vIEVhc2luZyBDdXJ2ZXNcbi8vIFRPRE8oamVsYm91cm4pOiBhbGwgb2YgdGhlc2UgbmVlZCB0byBiZSByZXZpc2l0ZWRcblxuLy8gVGhlIGRlZmF1bHQgYW5pbWF0aW9uIGN1cnZlcyB1c2VkIGJ5IG1hdGVyaWFsIGRlc2lnbi5cbiRtYXQtbGluZWFyLW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKSAhZGVmYXVsdDtcbiRtYXQtZmFzdC1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWRlZmF1bHQ7XG4kbWF0LWZhc3Qtb3V0LWxpbmVhci1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpICFkZWZhdWx0O1xuXG4kZWFzZS1pbi1vdXQtY3VydmUtZnVuY3Rpb246IGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKSAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uOiA0MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2Utb3V0OiBhbGwgJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uICRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG5cbiRzd2lmdC1lYXNlLWluLWR1cmF0aW9uOiAzMDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMikgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbjogYWxsICRzd2lmdC1lYXNlLWluLWR1cmF0aW9uICRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2UtaW4tb3V0LWR1cmF0aW9uOiA1MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb246ICRlYXNlLWluLW91dC1jdXJ2ZS1mdW5jdGlvbiAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dDogYWxsICRzd2lmdC1lYXNlLWluLW91dC1kdXJhdGlvbiAkc3dpZnQtZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG4kc3dpZnQtbGluZWFyLWR1cmF0aW9uOiA4MG1zICFkZWZhdWx0O1xuJHN3aWZ0LWxpbmVhci10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhZGVmYXVsdDtcbiRzd2lmdC1saW5lYXI6IGFsbCAkc3dpZnQtbGluZWFyLWR1cmF0aW9uICRzd2lmdC1saW5lYXItdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG5cblxuLy8gQSBjb2xsZWN0aW9uIG9mIG1peGlucyBhbmQgQ1NTIGNsYXNzZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBhcHBseSBlbGV2YXRpb24gdG8gYSBtYXRlcmlhbFxuLy8gZWxlbWVudC5cbi8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vZW52aXJvbm1lbnQvZWxldmF0aW9uLmh0bWxcbi8vIEV4YW1wbGVzOlxuLy9cbi8vXG4vLyAubWF0LWZvbyB7XG4vLyAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDIpO1xuLy9cbi8vICAgJjphY3RpdmUge1xuLy8gICAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDgpO1xuLy8gICB9XG4vLyB9XG4vL1xuLy8gPGRpdiBpZD1cImV4dGVybmFsLWNhcmRcIiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejJcIj48cD5Tb21lIGNvbnRlbnQ8L3A+PC9kaXY+XG4vL1xuLy8gRm9yIGFuIGV4cGxhbmF0aW9uIG9mIHRoZSBkZXNpZ24gYmVoaW5kIGhvdyBlbGV2YXRpb24gaXMgaW1wbGVtZW50ZWQsIHNlZSB0aGUgZGVzaWduIGRvYyBhdFxuLy8gaHR0cHM6Ly9nb28uZ2wvS3EwazlaLlxuXG4vLyBDb2xvcnMgZm9yIHVtYnJhLCBwZW51bWJyYSwgYW5kIGFtYmllbnQgc2hhZG93cy4gQXMgZGVzY3JpYmVkIGluIHRoZSBkZXNpZ24gZG9jLCBlYWNoIGVsZXZhdGlvblxuLy8gbGV2ZWwgaXMgY3JlYXRlZCB1c2luZyBhIHNldCBvZiAzIHNoYWRvdyB2YWx1ZXMsIG9uZSBmb3IgdW1icmEgKHRoZSBzaGFkb3cgcmVwcmVzZW50aW5nIHRoZVxuLy8gc3BhY2UgY29tcGxldGVseSBvYnNjdXJlZCBieSBhbiBvYmplY3QgcmVsYXRpdmUgdG8gaXRzIGxpZ2h0IHNvdXJjZSksIG9uZSBmb3IgcGVudW1icmEgKHRoZVxuLy8gc3BhY2UgcGFydGlhbGx5IG9ic2N1cmVkIGJ5IGFuIG9iamVjdCksIGFuZCBvbmUgZm9yIGFtYmllbnQgKHRoZSBzcGFjZSB3aGljaCBjb250YWlucyB0aGUgb2JqZWN0XG4vLyBpdHNlbGYpLiBGb3IgYSBmdXJ0aGVyIGV4cGxhbmF0aW9uIG9mIHRoZXNlIHRlcm1zIGFuZCB0aGVpciBtZWFuaW5ncywgc2VlXG4vLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VbWJyYSxfcGVudW1icmFfYW5kX2FudHVtYnJhLlxuXG4vLyBNYXBzIGZvciB0aGUgZGlmZmVyZW50IHNoYWRvdyBzZXRzIGFuZCB0aGVpciB2YWx1ZXMgd2l0aGluIGVhY2ggei1zcGFjZS4gVGhlc2UgdmFsdWVzIHdlcmVcbi8vIGNyZWF0ZWQgYnkgdGFraW5nIGEgZmV3IHJlZmVyZW5jZSBzaGFkb3cgc2V0cyBjcmVhdGVkIGJ5IEdvb2dsZSdzIERlc2lnbmVycyBhbmQgaW50ZXJwb2xhdGluZ1xuLy8gYWxsIG9mIHRoZSB2YWx1ZXMgYmV0d2VlbiB0aGVtLlxuXG5AZnVuY3Rpb24gX2dldC11bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMiksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDJweCAxcHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDNweCAxcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAzOiAnMHB4IDNweCAzcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDJweCA0cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA1OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA2OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA3OiAnMHB4IDRweCA1cHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA4OiAnMHB4IDVweCA1cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA5OiAnMHB4IDVweCA2cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMDogJzBweCA2cHggNnB4IC0zcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTE6ICcwcHggNnB4IDdweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDdweCA4cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMzogJzBweCA3cHggOHB4IC00cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTQ6ICcwcHggN3B4IDlweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDhweCA5cHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNjogJzBweCA4cHggMTBweCAtNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDhweCAxMXB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTg6ICcwcHggOXB4IDExcHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOTogJzBweCA5cHggMTJweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIyOiAnMHB4IDEwcHggMTRweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDExcHggMTRweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDExcHggMTVweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nXG4gICk7XG59XG5cbkBmdW5jdGlvbiBfZ2V0LXBlbnVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSB7XG4gICRzaGFkb3ctY29sb3I6IGlmKHR5cGUtb2YoJGNvbG9yKSA9PSBjb2xvciwgcmdiYSgkY29sb3IsICRvcGFjaXR5ICogMC4xNCksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDFweCAxcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI6ICcwcHggMnB4IDJweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMzogJzBweCAzcHggNHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDRweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDU6ICcwcHggNXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCA2cHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCA3cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCA4cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCA5cHggMTJweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggMTBweCAxNHB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMTogJzBweCAxMXB4IDE1cHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDEycHggMTdweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggMTNweCAxOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNDogJzBweCAxNHB4IDIxcHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDE1cHggMjJweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggMTZweCAyNHB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNzogJzBweCAxN3B4IDI2cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE4OiAnMHB4IDE4cHggMjhweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggMTlweCAyOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMDogJzBweCAyMHB4IDMxcHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDIxcHggMzNweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggMjJweCAzNXB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMzogJzBweCAyM3B4IDM2cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDI0cHggMzhweCAzcHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuQGZ1bmN0aW9uIF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMTIpLCAkY29sb3IpO1xuXG4gIEByZXR1cm4gKFxuICAgIDA6ICcwcHggMHB4IDBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTogJzBweCAxcHggM3B4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDFweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDM6ICcwcHggMXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNDogJzBweCAxcHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNTogJzBweCAxcHggMTRweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCAxcHggMThweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCAycHggMTZweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCAzcHggMTRweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCAzcHggMTZweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggNHB4IDE4cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDExOiAnMHB4IDRweCAyMHB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMjogJzBweCA1cHggMjJweCA0cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggNXB4IDI0cHggNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE0OiAnMHB4IDVweCAyNnB4IDRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNTogJzBweCA2cHggMjhweCA1cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggNnB4IDMwcHggNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDZweCAzMnB4IDVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxODogJzBweCA3cHggMzRweCA2cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggN3B4IDM2cHggNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDhweCAzOHB4IDdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMTogJzBweCA4cHggNDBweCA3cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggOHB4IDQycHggN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDlweCA0NHB4IDhweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyNDogJzBweCA5cHggNDZweCA4cHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuLy8gVGhlIGRlZmF1bHQgZHVyYXRpb24gdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb246IDI4MG1zICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBlYXNpbmcgdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkbWF0LWZhc3Qtb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uO1xuXG4vLyBUaGUgZGVmYXVsdCBjb2xvciBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IG9wYWNpdHkgc2NhbGluZyB2YWx1ZSBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1vcGFjaXR5OiAxICFkZWZhdWx0O1xuXG4vLyBQcmVmaXggZm9yIGVsZXZhdGlvbi1yZWxhdGVkIHNlbGVjdG9ycy5cbiRfbWF0LWVsZXZhdGlvbi1wcmVmaXg6ICdtYXQtZWxldmF0aW9uLXonO1xuXG4vLyBBcHBsaWVzIHRoZSBjb3JyZWN0IGNzcyBydWxlcyB0byBhbiBlbGVtZW50IHRvIGdpdmUgaXQgdGhlIGVsZXZhdGlvbiBzcGVjaWZpZWQgYnkgJHpWYWx1ZS5cbi8vIFRoZSAkelZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNC5cbkBtaXhpbiBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsICRvcGFjaXR5OiAkbWF0LWVsZXZhdGlvbi1vcGFjaXR5KSB7XG4gIEBpZiB0eXBlLW9mKCR6VmFsdWUpICE9IG51bWJlciBvciBub3QgdW5pdGxlc3MoJHpWYWx1ZSkge1xuICAgIEBlcnJvciAnJHpWYWx1ZSBtdXN0IGJlIGEgdW5pdGxlc3MgbnVtYmVyJztcbiAgfVxuICBAaWYgJHpWYWx1ZSA8IDAgb3IgJHpWYWx1ZSA+IDI0IHtcbiAgICBAZXJyb3IgJyR6VmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0JztcbiAgfVxuXG4gIGJveC1zaGFkb3c6ICN7bWFwLWdldChfZ2V0LXVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSwgJHpWYWx1ZSl9LFxuICAgICAgICAgICAgICAje21hcC1nZXQoX2dldC1wZW51bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfSxcbiAgICAgICAgICAgICAgI3ttYXAtZ2V0KF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfTtcbn1cblxuQG1peGluIF9tYXQtdGhlbWUtZWxldmF0aW9uKCR6VmFsdWUsICR0aGVtZSwgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGVsZXZhdGlvbi1jb2xvcjogbWFwLWdldCgkZm9yZWdyb3VuZCwgZWxldmF0aW9uKTtcbiAgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0OiBpZigkZWxldmF0aW9uLWNvbG9yID09IG51bGwsICRtYXQtZWxldmF0aW9uLWNvbG9yLCAkZWxldmF0aW9uLWNvbG9yKTtcblxuICBAaW5jbHVkZSBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdCwgJG9wYWNpdHkpO1xufVxuXG4vLyBBcHBsaWVzIHRoZSBlbGV2YXRpb24gdG8gYW4gZWxlbWVudCBpbiBhIG1hbm5lciB0aGF0IGFsbG93c1xuLy8gY29uc3VtZXJzIHRvIG92ZXJyaWRlIGl0IHZpYSB0aGUgTWF0ZXJpYWwgZWxldmF0aW9uIGNsYXNzZXMuXG5AbWl4aW4gbWF0LW92ZXJyaWRhYmxlLWVsZXZhdGlvbihcbiAgICAkelZhbHVlLFxuICAgICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsXG4gICAgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJjpub3QoW2NsYXNzKj0nI3skX21hdC1lbGV2YXRpb24tcHJlZml4fSddKSB7XG4gICAgQGluY2x1ZGUgbWF0LWVsZXZhdGlvbigkelZhbHVlLCAkY29sb3IsICRvcGFjaXR5KTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJHRoZW1lLCAkb3BhY2l0eTogJG1hdC1lbGV2YXRpb24tb3BhY2l0eSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkZWxldmF0aW9uLWNvbG9yOiBtYXAtZ2V0KCRmb3JlZ3JvdW5kLCBlbGV2YXRpb24pO1xuICAkZWxldmF0aW9uLWNvbG9yLW9yLWRlZmF1bHQ6IGlmKCRlbGV2YXRpb24tY29sb3IgPT0gbnVsbCwgJG1hdC1lbGV2YXRpb24tY29sb3IsICRlbGV2YXRpb24tY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1hdC1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0LCAkb3BhY2l0eSk7XG59XG5cbi8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCBhcyB0aGUgdmFsdWUgZm9yIGEgdHJhbnNpdGlvbiBwcm9wZXJ0eSBmb3IgZWxldmF0aW9uLlxuLy8gQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIGRpcmVjdGx5IGlzIHVzZWZ1bCBpbiBzaXR1YXRpb25zIHdoZXJlIGEgY29tcG9uZW50IG5lZWRzIHRvIHRyYW5zaXRpb25cbi8vIG1vcmUgdGhhbiBvbmUgcHJvcGVydHkuXG4vL1xuLy8gLmZvbyB7XG4vLyAgIHRyYW5zaXRpb246IG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1wcm9wZXJ0eS12YWx1ZSgpLCBvcGFjaXR5IDEwMG1zIGVhc2U7XG4vLyB9XG5AZnVuY3Rpb24gbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKFxuICAgICRkdXJhdGlvbjogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgICAkZWFzaW5nOiAkbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikge1xuICBAcmV0dXJuIGJveC1zaGFkb3cgI3skZHVyYXRpb259ICN7JGVhc2luZ307XG59XG5cbi8vIEFwcGxpZXMgdGhlIGNvcnJlY3QgY3NzIHJ1bGVzIG5lZWRlZCB0byBoYXZlIGFuIGVsZW1lbnQgdHJhbnNpdGlvbiBiZXR3ZWVuIGVsZXZhdGlvbnMuXG4vLyBUaGlzIG1peGluIHNob3VsZCBiZSBhcHBsaWVkIHRvIGVsZW1lbnRzIHdob3NlIGVsZXZhdGlvbiB2YWx1ZXMgd2lsbCBjaGFuZ2UgZGVwZW5kaW5nIG9uIHRoZWlyXG4vLyBjb250ZXh0IChlLmcuIHdoZW4gYWN0aXZlIG9yIGRpc2FibGVkKS5cbi8vXG4vLyBOT1RFKHRyYXZpc2thdWZtYW4pOiBCb3RoIHRoaXMgbWl4aW4gYW5kIHRoZSBhYm92ZSBmdW5jdGlvbiB1c2UgZGVmYXVsdCBwYXJhbWV0ZXJzIHNvIHRoZXkgY2FuXG4vLyBiZSB1c2VkIGluIHRoZSBzYW1lIHdheSBieSBjbGllbnRzLlxuQG1peGluIG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbihcbiAgICAkZHVyYXRpb246ICRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICAgJGVhc2luZzogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pIHtcbiAgdHJhbnNpdGlvbjogbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKCRkdXJhdGlvbiwgJGVhc2luZyk7XG59XG5cbi8vIENvbG9yIHBhbGV0dGVzIGZyb20gdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbG9yL1xuLy9cbi8vIENvbnRyYXN0IGNvbG9ycyBhcmUgaGFyZC1jb2RlZCBiZWNhdXNlIGl0IGlzIHRvbyBkaWZmaWN1bHQgKHByb2JhYmx5IGltcG9zc2libGUpIHRvXG4vLyBjYWxjdWxhdGUgdGhlbS4gVGhlc2UgY29udHJhc3QgY29sb3JzIGFyZSBwdWxsZWQgZnJvbSB0aGUgcHVibGljIE1hdGVyaWFsIERlc2lnbiBzcGVjIHN3YXRjaGVzLlxuLy8gV2hpbGUgdGhlIGNvbnRyYXN0IGNvbG9ycyBpbiB0aGUgc3BlYyBhcmUgbm90IHByZXNjcmlwdGl2ZSwgd2UgdXNlIHRoZW0gZm9yIGNvbnZlbmllbmNlLlxuXG5cbi8vIEBkZXByZWNhdGVkIHJlbmFtZWQgdG8gJGRhcmstcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJGJsYWNrLTg3LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgcmVuYW1lZCB0byAkbGlnaHQtcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTg3LW9wYWNpdHk6IHJnYmEod2hpdGUsIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRkYXJrLVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kYmxhY2stMTItb3BhY2l0eTogcmdiYShibGFjaywgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGxpZ2h0LVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kd2hpdGUtMTItb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGRhcmstW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiRibGFjay02LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuMDYpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRsaWdodC1bc2Vjb25kYXJ5LXRleHQsZGlzYWJsZWQtdGV4dCxkaXZpZGVycyxmb2N1c2VkXSBpbnN0ZWFkLlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTYtb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4wNik7XG5cbiRkYXJrLXByaW1hcnktdGV4dDogcmdiYShibGFjaywgMC44Nyk7XG4kZGFyay1zZWNvbmRhcnktdGV4dDogcmdiYShibGFjaywgMC41NCk7XG4kZGFyay1kaXNhYmxlZC10ZXh0OiByZ2JhKGJsYWNrLCAwLjM4KTtcbiRkYXJrLWRpdmlkZXJzOiByZ2JhKGJsYWNrLCAwLjEyKTtcbiRkYXJrLWZvY3VzZWQ6IHJnYmEoYmxhY2ssIDAuMTIpO1xuJGxpZ2h0LXByaW1hcnktdGV4dDogd2hpdGU7XG4kbGlnaHQtc2Vjb25kYXJ5LXRleHQ6IHJnYmEod2hpdGUsIDAuNyk7XG4kbGlnaHQtZGlzYWJsZWQtdGV4dDogcmdiYSh3aGl0ZSwgMC41KTtcbiRsaWdodC1kaXZpZGVyczogcmdiYSh3aGl0ZSwgMC4xMik7XG4kbGlnaHQtZm9jdXNlZDogcmdiYSh3aGl0ZSwgMC4xMik7XG5cbiRtYXQtcmVkOiAoXG4gIDUwOiAjZmZlYmVlLFxuICAxMDA6ICNmZmNkZDIsXG4gIDIwMDogI2VmOWE5YSxcbiAgMzAwOiAjZTU3MzczLFxuICA0MDA6ICNlZjUzNTAsXG4gIDUwMDogI2Y0NDMzNixcbiAgNjAwOiAjZTUzOTM1LFxuICA3MDA6ICNkMzJmMmYsXG4gIDgwMDogI2M2MjgyOCxcbiAgOTAwOiAjYjcxYzFjLFxuICBBMTAwOiAjZmY4YTgwLFxuICBBMjAwOiAjZmY1MjUyLFxuICBBNDAwOiAjZmYxNzQ0LFxuICBBNzAwOiAjZDUwMDAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtcGluazogKFxuICA1MDogI2ZjZTRlYyxcbiAgMTAwOiAjZjhiYmQwLFxuICAyMDA6ICNmNDhmYjEsXG4gIDMwMDogI2YwNjI5MixcbiAgNDAwOiAjZWM0MDdhLFxuICA1MDA6ICNlOTFlNjMsXG4gIDYwMDogI2Q4MWI2MCxcbiAgNzAwOiAjYzIxODViLFxuICA4MDA6ICNhZDE0NTcsXG4gIDkwMDogIzg4MGU0ZixcbiAgQTEwMDogI2ZmODBhYixcbiAgQTIwMDogI2ZmNDA4MSxcbiAgQTQwMDogI2Y1MDA1NyxcbiAgQTcwMDogI2M1MTE2MixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXB1cnBsZTogKFxuICA1MDogI2YzZTVmNSxcbiAgMTAwOiAjZTFiZWU3LFxuICAyMDA6ICNjZTkzZDgsXG4gIDMwMDogI2JhNjhjOCxcbiAgNDAwOiAjYWI0N2JjLFxuICA1MDA6ICM5YzI3YjAsXG4gIDYwMDogIzhlMjRhYSxcbiAgNzAwOiAjN2IxZmEyLFxuICA4MDA6ICM2YTFiOWEsXG4gIDkwMDogIzRhMTQ4YyxcbiAgQTEwMDogI2VhODBmYyxcbiAgQTIwMDogI2UwNDBmYixcbiAgQTQwMDogI2Q1MDBmOSxcbiAgQTcwMDogI2FhMDBmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtZGVlcC1wdXJwbGU6IChcbiAgNTA6ICNlZGU3ZjYsXG4gIDEwMDogI2QxYzRlOSxcbiAgMjAwOiAjYjM5ZGRiLFxuICAzMDA6ICM5NTc1Y2QsXG4gIDQwMDogIzdlNTdjMixcbiAgNTAwOiAjNjczYWI3LFxuICA2MDA6ICM1ZTM1YjEsXG4gIDcwMDogIzUxMmRhOCxcbiAgODAwOiAjNDUyN2EwLFxuICA5MDA6ICMzMTFiOTIsXG4gIEExMDA6ICNiMzg4ZmYsXG4gIEEyMDA6ICM3YzRkZmYsXG4gIEE0MDA6ICM2NTFmZmYsXG4gIEE3MDA6ICM2MjAwZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWluZGlnbzogKFxuICA1MDogI2U4ZWFmNixcbiAgMTAwOiAjYzVjYWU5LFxuICAyMDA6ICM5ZmE4ZGEsXG4gIDMwMDogIzc5ODZjYixcbiAgNDAwOiAjNWM2YmMwLFxuICA1MDA6ICMzZjUxYjUsXG4gIDYwMDogIzM5NDlhYixcbiAgNzAwOiAjMzAzZjlmLFxuICA4MDA6ICMyODM1OTMsXG4gIDkwMDogIzFhMjM3ZSxcbiAgQTEwMDogIzhjOWVmZixcbiAgQTIwMDogIzUzNmRmZSxcbiAgQTQwMDogIzNkNWFmZSxcbiAgQTcwMDogIzMwNGZmZSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtYmx1ZTogKFxuICA1MDogI2UzZjJmZCxcbiAgMTAwOiAjYmJkZWZiLFxuICAyMDA6ICM5MGNhZjksXG4gIDMwMDogIzY0YjVmNixcbiAgNDAwOiAjNDJhNWY1LFxuICA1MDA6ICMyMTk2ZjMsXG4gIDYwMDogIzFlODhlNSxcbiAgNzAwOiAjMTk3NmQyLFxuICA4MDA6ICMxNTY1YzAsXG4gIDkwMDogIzBkNDdhMSxcbiAgQTEwMDogIzgyYjFmZixcbiAgQTIwMDogIzQ0OGFmZixcbiAgQTQwMDogIzI5NzlmZixcbiAgQTcwMDogIzI5NjJmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWxpZ2h0LWJsdWU6IChcbiAgNTA6ICNlMWY1ZmUsXG4gIDEwMDogI2IzZTVmYyxcbiAgMjAwOiAjODFkNGZhLFxuICAzMDA6ICM0ZmMzZjcsXG4gIDQwMDogIzI5YjZmNixcbiAgNTAwOiAjMDNhOWY0LFxuICA2MDA6ICMwMzliZTUsXG4gIDcwMDogIzAyODhkMSxcbiAgODAwOiAjMDI3N2JkLFxuICA5MDA6ICMwMTU3OWIsXG4gIEExMDA6ICM4MGQ4ZmYsXG4gIEEyMDA6ICM0MGM0ZmYsXG4gIEE0MDA6ICMwMGIwZmYsXG4gIEE3MDA6ICMwMDkxZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtY3lhbjogKFxuICA1MDogI2UwZjdmYSxcbiAgMTAwOiAjYjJlYmYyLFxuICAyMDA6ICM4MGRlZWEsXG4gIDMwMDogIzRkZDBlMSxcbiAgNDAwOiAjMjZjNmRhLFxuICA1MDA6ICMwMGJjZDQsXG4gIDYwMDogIzAwYWNjMSxcbiAgNzAwOiAjMDA5N2E3LFxuICA4MDA6ICMwMDgzOGYsXG4gIDkwMDogIzAwNjA2NCxcbiAgQTEwMDogIzg0ZmZmZixcbiAgQTIwMDogIzE4ZmZmZixcbiAgQTQwMDogIzAwZTVmZixcbiAgQTcwMDogIzAwYjhkNCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXRlYWw6IChcbiAgNTA6ICNlMGYyZjEsXG4gIDEwMDogI2IyZGZkYixcbiAgMjAwOiAjODBjYmM0LFxuICAzMDA6ICM0ZGI2YWMsXG4gIDQwMDogIzI2YTY5YSxcbiAgNTAwOiAjMDA5Njg4LFxuICA2MDA6ICMwMDg5N2IsXG4gIDcwMDogIzAwNzk2YixcbiAgODAwOiAjMDA2OTVjLFxuICA5MDA6ICMwMDRkNDAsXG4gIEExMDA6ICNhN2ZmZWIsXG4gIEEyMDA6ICM2NGZmZGEsXG4gIEE0MDA6ICMxZGU5YjYsXG4gIEE3MDA6ICMwMGJmYTUsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1ncmVlbjogKFxuICA1MDogI2U4ZjVlOSxcbiAgMTAwOiAjYzhlNmM5LFxuICAyMDA6ICNhNWQ2YTcsXG4gIDMwMDogIzgxYzc4NCxcbiAgNDAwOiAjNjZiYjZhLFxuICA1MDA6ICM0Y2FmNTAsXG4gIDYwMDogIzQzYTA0NyxcbiAgNzAwOiAjMzg4ZTNjLFxuICA4MDA6ICMyZTdkMzIsXG4gIDkwMDogIzFiNWUyMCxcbiAgQTEwMDogI2I5ZjZjYSxcbiAgQTIwMDogIzY5ZjBhZSxcbiAgQTQwMDogIzAwZTY3NixcbiAgQTcwMDogIzAwYzg1MyxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGlnaHQtZ3JlZW46IChcbiAgNTA6ICNmMWY4ZTksXG4gIDEwMDogI2RjZWRjOCxcbiAgMjAwOiAjYzVlMWE1LFxuICAzMDA6ICNhZWQ1ODEsXG4gIDQwMDogIzljY2M2NSxcbiAgNTAwOiAjOGJjMzRhLFxuICA2MDA6ICM3Y2IzNDIsXG4gIDcwMDogIzY4OWYzOCxcbiAgODAwOiAjNTU4YjJmLFxuICA5MDA6ICMzMzY5MWUsXG4gIEExMDA6ICNjY2ZmOTAsXG4gIEEyMDA6ICNiMmZmNTksXG4gIEE0MDA6ICM3NmZmMDMsXG4gIEE3MDA6ICM2NGRkMTcsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGltZTogKFxuICA1MDogI2Y5ZmJlNyxcbiAgMTAwOiAjZjBmNGMzLFxuICAyMDA6ICNlNmVlOWMsXG4gIDMwMDogI2RjZTc3NSxcbiAgNDAwOiAjZDRlMTU3LFxuICA1MDA6ICNjZGRjMzksXG4gIDYwMDogI2MwY2EzMyxcbiAgNzAwOiAjYWZiNDJiLFxuICA4MDA6ICM5ZTlkMjQsXG4gIDkwMDogIzgyNzcxNyxcbiAgQTEwMDogI2Y0ZmY4MSxcbiAgQTIwMDogI2VlZmY0MSxcbiAgQTQwMDogI2M2ZmYwMCxcbiAgQTcwMDogI2FlZWEwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQteWVsbG93OiAoXG4gIDUwOiAjZmZmZGU3LFxuICAxMDA6ICNmZmY5YzQsXG4gIDIwMDogI2ZmZjU5ZCxcbiAgMzAwOiAjZmZmMTc2LFxuICA0MDA6ICNmZmVlNTgsXG4gIDUwMDogI2ZmZWIzYixcbiAgNjAwOiAjZmRkODM1LFxuICA3MDA6ICNmYmMwMmQsXG4gIDgwMDogI2Y5YTgyNSxcbiAgOTAwOiAjZjU3ZjE3LFxuICBBMTAwOiAjZmZmZjhkLFxuICBBMjAwOiAjZmZmZjAwLFxuICBBNDAwOiAjZmZlYTAwLFxuICBBNzAwOiAjZmZkNjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWFtYmVyOiAoXG4gIDUwOiAjZmZmOGUxLFxuICAxMDA6ICNmZmVjYjMsXG4gIDIwMDogI2ZmZTA4MixcbiAgMzAwOiAjZmZkNTRmLFxuICA0MDA6ICNmZmNhMjgsXG4gIDUwMDogI2ZmYzEwNyxcbiAgNjAwOiAjZmZiMzAwLFxuICA3MDA6ICNmZmEwMDAsXG4gIDgwMDogI2ZmOGYwMCxcbiAgOTAwOiAjZmY2ZjAwLFxuICBBMTAwOiAjZmZlNTdmLFxuICBBMjAwOiAjZmZkNzQwLFxuICBBNDAwOiAjZmZjNDAwLFxuICBBNzAwOiAjZmZhYjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LW9yYW5nZTogKFxuICA1MDogI2ZmZjNlMCxcbiAgMTAwOiAjZmZlMGIyLFxuICAyMDA6ICNmZmNjODAsXG4gIDMwMDogI2ZmYjc0ZCxcbiAgNDAwOiAjZmZhNzI2LFxuICA1MDA6ICNmZjk4MDAsXG4gIDYwMDogI2ZiOGMwMCxcbiAgNzAwOiAjZjU3YzAwLFxuICA4MDA6ICNlZjZjMDAsXG4gIDkwMDogI2U2NTEwMCxcbiAgQTEwMDogI2ZmZDE4MCxcbiAgQTIwMDogI2ZmYWI0MCxcbiAgQTQwMDogI2ZmOTEwMCxcbiAgQTcwMDogI2ZmNmQwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogYmxhY2ssXG4gIClcbik7XG5cbiRtYXQtZGVlcC1vcmFuZ2U6IChcbiAgNTA6ICNmYmU5ZTcsXG4gIDEwMDogI2ZmY2NiYyxcbiAgMjAwOiAjZmZhYjkxLFxuICAzMDA6ICNmZjhhNjUsXG4gIDQwMDogI2ZmNzA0MyxcbiAgNTAwOiAjZmY1NzIyLFxuICA2MDA6ICNmNDUxMWUsXG4gIDcwMDogI2U2NGExOSxcbiAgODAwOiAjZDg0MzE1LFxuICA5MDA6ICNiZjM2MGMsXG4gIEExMDA6ICNmZjllODAsXG4gIEEyMDA6ICNmZjZlNDAsXG4gIEE0MDA6ICNmZjNkMDAsXG4gIEE3MDA6ICNkZDJjMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWJyb3duOiAoXG4gIDUwOiAjZWZlYmU5LFxuICAxMDA6ICNkN2NjYzgsXG4gIDIwMDogI2JjYWFhNCxcbiAgMzAwOiAjYTE4ODdmLFxuICA0MDA6ICM4ZDZlNjMsXG4gIDUwMDogIzc5NTU0OCxcbiAgNjAwOiAjNmQ0YzQxLFxuICA3MDA6ICM1ZDQwMzcsXG4gIDgwMDogIzRlMzQyZSxcbiAgOTAwOiAjM2UyNzIzLFxuICBBMTAwOiAjZDdjY2M4LFxuICBBMjAwOiAjYmNhYWE0LFxuICBBNDAwOiAjOGQ2ZTYzLFxuICBBNzAwOiAjNWQ0MDM3LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWdyZXk6IChcbiAgNTA6ICNmYWZhZmEsXG4gIDEwMDogI2Y1ZjVmNSxcbiAgMjAwOiAjZWVlZWVlLFxuICAzMDA6ICNlMGUwZTAsXG4gIDQwMDogI2JkYmRiZCxcbiAgNTAwOiAjOWU5ZTllLFxuICA2MDA6ICM3NTc1NzUsXG4gIDcwMDogIzYxNjE2MSxcbiAgODAwOiAjNDI0MjQyLFxuICA5MDA6ICMyMTIxMjEsXG4gIEExMDA6ICNmZmZmZmYsXG4gIEEyMDA6ICNlZWVlZWUsXG4gIEE0MDA6ICNiZGJkYmQsXG4gIEE3MDA6ICM2MTYxNjEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuLy8gQWxpYXMgZm9yIGFsdGVybmF0ZSBzcGVsbGluZy5cbiRtYXQtZ3JheTogJG1hdC1ncmV5O1xuXG4kbWF0LWJsdWUtZ3JleTogKFxuICA1MDogI2VjZWZmMSxcbiAgMTAwOiAjY2ZkOGRjLFxuICAyMDA6ICNiMGJlYzUsXG4gIDMwMDogIzkwYTRhZSxcbiAgNDAwOiAjNzg5MDljLFxuICA1MDA6ICM2MDdkOGIsXG4gIDYwMDogIzU0NmU3YSxcbiAgNzAwOiAjNDU1YTY0LFxuICA4MDA6ICMzNzQ3NGYsXG4gIDkwMDogIzI2MzIzOCxcbiAgQTEwMDogI2NmZDhkYyxcbiAgQTIwMDogI2IwYmVjNSxcbiAgQTQwMDogIzc4OTA5YyxcbiAgQTcwMDogIzQ1NWE2NCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4vLyBBbGlhcyBmb3IgYWx0ZXJuYXRlIHNwZWxsaW5nLlxuJG1hdC1ibHVlLWdyYXk6ICRtYXQtYmx1ZS1ncmV5O1xuXG5cbi8vIEJhY2tncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBhcHAtYmFyOiAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgMTAwKSxcbiAgYmFja2dyb3VuZDogbWFwX2dldCgkbWF0LWdyZXksIDUwKSxcbiAgaG92ZXI6ICAgICAgcmdiYShibGFjaywgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIHdoaXRlLFxuICBkaWFsb2c6ICAgICB3aGl0ZSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKGJsYWNrLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogd2hpdGUsXG4gIGZvY3VzZWQtYnV0dG9uOiAkZGFyay1mb2N1c2VkLFxuICBzZWxlY3RlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBzZWxlY3RlZC1kaXNhYmxlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCA0MDApLFxuICBkaXNhYmxlZC1idXR0b24tdG9nZ2xlOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMjAwKSxcbiAgdW5zZWxlY3RlZC1jaGlwOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgZGlzYWJsZWQtbGlzdC1vcHRpb246IG1hcF9nZXQoJG1hdC1ncmV5LCAyMDApLFxuKTtcblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiRtYXQtZGFyay10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IGJsYWNrLFxuICBhcHAtYmFyOiAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgYmFja2dyb3VuZDogIzMwMzAzMCxcbiAgaG92ZXI6ICAgICAgcmdiYSh3aGl0ZSwgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIG1hcF9nZXQoJG1hdC1ncmV5LCA4MDApLFxuICBkaWFsb2c6ICAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKHdoaXRlLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDgwMCksXG4gIGZvY3VzZWQtYnV0dG9uOiAkbGlnaHQtZm9jdXNlZCxcbiAgc2VsZWN0ZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZTogYmxhY2ssXG4gIHVuc2VsZWN0ZWQtY2hpcDogbWFwX2dldCgkbWF0LWdyZXksIDcwMCksXG4gIGRpc2FibGVkLWxpc3Qtb3B0aW9uOiBibGFjayxcbik7XG5cbi8vIEZvcmVncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kOiAoXG4gIGJhc2U6ICAgICAgICAgICAgICBibGFjayxcbiAgZGl2aWRlcjogICAgICAgICAgICRkYXJrLWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGRhcmstZGl2aWRlcnMsXG4gIGRpc2FibGVkOiAgICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246ICAgcmdiYShibGFjaywgMC4yNiksXG4gIGRpc2FibGVkLXRleHQ6ICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246ICAgICAgICAgYmxhY2ssXG4gIGhpbnQtdGV4dDogICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGRhcmstc2Vjb25kYXJ5LXRleHQsXG4gIGljb246ICAgICAgICAgICAgICByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgaWNvbnM6ICAgICAgICAgICAgIHJnYmEoYmxhY2ssIDAuNTQpLFxuICB0ZXh0OiAgICAgICAgICAgICAgcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1taW46ICAgICAgICByZ2JhKGJsYWNrLCAwLjg3KSxcbiAgc2xpZGVyLW9mZjogICAgICAgIHJnYmEoYmxhY2ssIDAuMjYpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYShibGFjaywgMC4zOCksXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJG1hdC1kYXJrLXRoZW1lLWZvcmVncm91bmQ6IChcbiAgYmFzZTogICAgICAgICAgICAgIHdoaXRlLFxuICBkaXZpZGVyOiAgICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXNhYmxlZDogICAgICAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGRpc2FibGVkLWJ1dHRvbjogICByZ2JhKHdoaXRlLCAwLjMpLFxuICBkaXNhYmxlZC10ZXh0OiAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGVsZXZhdGlvbjogICAgICAgICBibGFjayxcbiAgaGludC10ZXh0OiAgICAgICAgICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGxpZ2h0LXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiAgICAgICAgICAgICAgd2hpdGUsXG4gIGljb25zOiAgICAgICAgICAgICB3aGl0ZSxcbiAgdGV4dDogICAgICAgICAgICAgIHdoaXRlLFxuICBzbGlkZXItbWluOiAgICAgICAgd2hpdGUsXG4gIHNsaWRlci1vZmY6ICAgICAgICByZ2JhKHdoaXRlLCAwLjMpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYSh3aGl0ZSwgMC4zKSxcbik7XG5cblxuXG4vLyBGb3IgYSBnaXZlbiBodWUgaW4gYSBwYWxldHRlLCByZXR1cm4gdGhlIGNvbnRyYXN0IGNvbG9yIGZyb20gdGhlIG1hcCBvZiBjb250cmFzdCBwYWxldHRlcy5cbi8vIEBwYXJhbSAkY29sb3ItbWFwXG4vLyBAcGFyYW0gJGh1ZVxuQGZ1bmN0aW9uIG1hdC1jb250cmFzdCgkcGFsZXR0ZSwgJGh1ZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkcGFsZXR0ZSwgY29udHJhc3QpLCAkaHVlKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgbWFwIG9mIGh1ZXMgdG8gY29sb3JzIGZvciBhIHRoZW1lLiBUaGlzIGlzIHVzZWQgdG8gZGVmaW5lIGEgdGhlbWUgcGFsZXR0ZSBpbiB0ZXJtc1xuLy8gb2YgdGhlIE1hdGVyaWFsIERlc2lnbiBodWVzLlxuLy8gQHBhcmFtICRjb2xvci1tYXBcbi8vIEBwYXJhbSAkcHJpbWFyeVxuLy8gQHBhcmFtICRsaWdodGVyXG5AZnVuY3Rpb24gbWF0LXBhbGV0dGUoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQ6IDUwMCwgJGxpZ2h0ZXI6IDEwMCwgJGRhcmtlcjogNzAwLCAkdGV4dDogJGRlZmF1bHQpIHtcbiAgJHJlc3VsdDogbWFwX21lcmdlKCRiYXNlLXBhbGV0dGUsIChcbiAgICBkZWZhdWx0OiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRkZWZhdWx0KSxcbiAgICBsaWdodGVyOiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRsaWdodGVyKSxcbiAgICBkYXJrZXI6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlciksXG4gICAgdGV4dDogbWFwLWdldCgkYmFzZS1wYWxldHRlLCAkdGV4dCksXG5cbiAgICBkZWZhdWx0LWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQpLFxuICAgIGxpZ2h0ZXItY29udHJhc3Q6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkbGlnaHRlciksXG4gICAgZGFya2VyLWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlcilcbiAgKSk7XG5cbiAgLy8gRm9yIGVhY2ggaHVlIGluIHRoZSBwYWxldHRlLCBhZGQgYSBcIi1jb250cmFzdFwiIGNvbG9yIHRvIHRoZSBtYXAuXG4gIEBlYWNoICRodWUsICRjb2xvciBpbiAkYmFzZS1wYWxldHRlIHtcbiAgICAkcmVzdWx0OiBtYXBfbWVyZ2UoJHJlc3VsdCwgKFxuICAgICAgJyN7JGh1ZX0tY29udHJhc3QnOiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGh1ZSlcbiAgICApKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuXG4vLyBHZXRzIGEgY29sb3IgZnJvbSBhIHRoZW1lIHBhbGV0dGUgKHRoZSBvdXRwdXQgb2YgbWF0LXBhbGV0dGUpLlxuLy8gVGhlIGh1ZSBjYW4gYmUgb25lIG9mIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKDUwMCwgQTQwMCwgZXRjLiksIG9uZSBvZiB0aGUgdGhyZWUgcHJlY29uZmlndXJlZFxuLy8gaHVlcyAoZGVmYXVsdCwgbGlnaHRlciwgZGFya2VyKSwgb3IgYW55IG9mIHRoZSBhZm9yZW1lbnRpb25lZCBwcmVmaXhlZCB3aXRoIFwiLWNvbnRyYXN0XCIuXG4vL1xuLy8gQHBhcmFtICRjb2xvci1tYXAgVGhlIHRoZW1lIHBhbGV0dGUgKG91dHB1dCBvZiBtYXQtcGFsZXR0ZSkuXG4vLyBAcGFyYW0gJGh1ZSBUaGUgaHVlIGZyb20gdGhlIHBhbGV0dGUgdG8gdXNlLiBJZiB0aGlzIGlzIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLCBpdCB3aWxsXG4vLyAgICAgYmUgdHJlYXRlZCBhcyBvcGFjaXR5LlxuLy8gQHBhcmFtICRvcGFjaXR5IFRoZSBhbHBoYSBjaGFubmVsIHZhbHVlIGZvciB0aGUgY29sb3IuXG5AZnVuY3Rpb24gbWF0LWNvbG9yKCRwYWxldHRlLCAkaHVlOiBkZWZhdWx0LCAkb3BhY2l0eTogbnVsbCkge1xuICAvLyBJZiBodWVLZXkgaXMgYSBudW1iZXIgYmV0d2VlbiB6ZXJvIGFuZCBvbmUsIHRoZW4gaXQgYWN0dWFsbHkgY29udGFpbnMgYW5cbiAgLy8gb3BhY2l0eSB2YWx1ZSwgc28gcmVjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCB0aGUgZGVmYXVsdCBodWUgYW5kIHRoYXQgZ2l2ZW4gb3BhY2l0eS5cbiAgQGlmIHR5cGUtb2YoJGh1ZSkgPT0gbnVtYmVyIGFuZCAkaHVlID49IDAgYW5kICRodWUgPD0gMSB7XG4gICAgQHJldHVybiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQsICRodWUpO1xuICB9XG5cbiAgJGNvbG9yOiBtYXAtZ2V0KCRwYWxldHRlLCAkaHVlKTtcblxuICBAaWYgKHR5cGUtb2YoJGNvbG9yKSAhPSBjb2xvcikge1xuICAgIC8vIElmIHRoZSAkY29sb3IgcmVzb2x2ZWQgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIGEgY29sb3IgKGUuZy4gYSBDU1MgdmFyaWFibGUpLFxuICAgIC8vIHdlIGNhbid0IGFwcGx5IHRoZSBvcGFjaXR5IGFueXdheSBzbyB3ZSByZXR1cm4gdGhlIHZhbHVlIGFzIGlzLCBvdGhlcndpc2UgU2FzcyBjYW5cbiAgICAvLyB0aHJvdyBhbiBlcnJvciBvciBvdXRwdXQgc29tZXRoaW5nIGludmFsaWQuXG4gICAgQHJldHVybiAkY29sb3I7XG4gIH1cblxuICBAcmV0dXJuIHJnYmEoJGNvbG9yLCBpZigkb3BhY2l0eSA9PSBudWxsLCBvcGFjaXR5KCRjb2xvciksICRvcGFjaXR5KSk7XG59XG5cblxuLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIGEgbGlnaHQgdGhlbWUgdG8gYmUgZ2l2ZW4gdG8gaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLlxuQGZ1bmN0aW9uIG1hdC1saWdodC10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogJHdhcm4sXG4gICAgaXMtZGFyazogZmFsc2UsXG4gICAgZm9yZWdyb3VuZDogJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kLFxuICAgIGJhY2tncm91bmQ6ICRtYXQtbGlnaHQtdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBmb3IgYSBkYXJrIHRoZW1lIHRvIGJlIGdpdmVuIHRvIGluZGl2aWR1YWwgY29tcG9uZW50IHRoZW1lIG1peGlucy5cbkBmdW5jdGlvbiBtYXQtZGFyay10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogJHdhcm4sXG4gICAgaXMtZGFyazogdHJ1ZSxcbiAgICBmb3JlZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtZm9yZWdyb3VuZCxcbiAgICBiYWNrZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuXG5cbiRtYXQtcmlwcGxlLWNvbG9yLW9wYWNpdHk6IDAuMTtcblxuQG1peGluIG1hdC1yaXBwbGUoKSB7XG5cbiAgLy8gVGhlIGhvc3QgZWxlbWVudCBvZiBhbiBtYXQtcmlwcGxlIGRpcmVjdGl2ZSBzaG91bGQgYWx3YXlzIGhhdmUgYSBwb3NpdGlvbiBvZiBcImFic29sdXRlXCIgb3JcbiAgLy8gXCJyZWxhdGl2ZVwiIHNvIHRoYXQgdGhlIHJpcHBsZXMgaW5zaWRlIGFyZSBjb3JyZWN0bHkgcG9zaXRpb25lZCByZWxhdGl2ZWx5IHRvIHRoZSBjb250YWluZXIuXG4gIC5tYXQtcmlwcGxlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gQnkgZGVmYXVsdCwgZXZlcnkgcmlwcGxlIGNvbnRhaW5lciBzaG91bGQgaGF2ZSBwb3NpdGlvbjogcmVsYXRpdmUgaW4gZmF2b3Igb2YgY3JlYXRpbmcgYW5cbiAgICAvLyBlYXN5IEFQSSBmb3IgZGV2ZWxvcGVycyB1c2luZyB0aGUgTWF0UmlwcGxlIGRpcmVjdGl2ZS5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSwgdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuXG4gICAgLy8gSW4gaGlnaCBjb250cmFzdCBtb2RlIHRoZSByaXBwbGUgaXMgb3BhcXVlLCBjYXVzaW5nIGl0IHRvIG9ic3RydWN0IHRoZSBjb250ZW50LlxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8qIFRoZW1lIGZvciB0aGUgcmlwcGxlIGVsZW1lbnRzLiovXG5AbWl4aW4gbWF0LXJpcHBsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcF9nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQtYmFzZTogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgLy8gSWYgdGhlIHJpcHBsZSBjb2xvciBpcyByZXNvbHZlcyB0byBhIGNvbG9yICp0eXBlKiwgd2UgY2FuIHVzZSBpdCBkaXJlY3RseSwgb3RoZXJ3aXNlXG4gICAgLy8gKGUuZy4gaXQgcmVzb2x2ZXMgdG8gYSBDU1MgdmFyaWFibGUpIHdlIGZhbGwgYmFjayB0byB1c2luZyB0aGUgY29sb3IgYW5kIHNldHRpbmcgYW4gb3BhY2l0eS5cbiAgICBAaWYgKHR5cGUtb2YoJGZvcmVncm91bmQtYmFzZSkgPT0gY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGZvcmVncm91bmQtYmFzZSwgJG1hdC1yaXBwbGUtY29sb3Itb3BhY2l0eSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JlZ3JvdW5kLWJhc2U7XG4gICAgICBvcGFjaXR5OiAkbWF0LXJpcHBsZS1jb2xvci1vcGFjaXR5O1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gVXRpbGl0eSBmb3IgZmV0Y2hpbmcgYSBuZXN0ZWQgdmFsdWUgZnJvbSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCAkbmFtZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkY29uZmlnLCAkbGV2ZWwpLCAkbmFtZSk7XG59XG5cbi8vIEdldHMgdGhlIGZvbnQgc2l6ZSBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtZm9udC1zaXplKCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXNpemUpO1xufVxuXG4vLyBHZXRzIHRoZSBsaW5lIGhlaWdodCBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKSB7XG4gIEByZXR1cm4gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGxpbmUtaGVpZ2h0KTtcbn1cblxuLy8gR2V0cyB0aGUgZm9udCB3ZWlnaHQgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXdlaWdodCk7XG59XG5cbi8vIEdldHMgdGhlIGxldHRlciBzcGFjaW5nIGZvciBhIGxldmVsIGluc2lkZSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgbGV0dGVyLXNwYWNpbmcpO1xufVxuXG4vLyBHZXRzIHRoZSBmb250LWZhbWlseSBmcm9tIGEgdHlwb2dyYXBoeSBjb25maWcgYW5kIHJlbW92ZXMgdGhlIHF1b3RlcyBhcm91bmQgaXQuXG5AZnVuY3Rpb24gbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsICRsZXZlbDogbnVsbCkge1xuICAkZm9udC1mYW1pbHk6IG1hcC1nZXQoJGNvbmZpZywgZm9udC1mYW1pbHkpO1xuXG4gIEBpZiAkbGV2ZWwgIT0gbnVsbCB7XG4gICAgJGZvbnQtZmFtaWx5OiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgZm9udC1mYW1pbHkpO1xuICB9XG5cbiAgLy8gR3VhcmQgYWdhaW5zdCB1bnF1b3Rpbmcgbm9uLXN0cmluZyB2YWx1ZXMsIGJlY2F1c2UgaXQncyBkZXByZWNhdGVkLlxuICBAcmV0dXJuIGlmKHR5cGUtb2YoJGZvbnQtZmFtaWx5KSA9PSBzdHJpbmcsIHVucXVvdGUoJGZvbnQtZmFtaWx5KSwgJGZvbnQtZmFtaWx5KTtcbn1cblxuLy8gT3V0cHV0cyB0aGUgc2hvcnRoYW5kIGBmb250YCBDU1MgcHJvcGVydHksIGJhc2VkIG9uIGEgc2V0IG9mIHR5cG9ncmFwaHkgdmFsdWVzLiBGYWxscyBiYWNrIHRvXG4vLyB0aGUgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIGlmIGEgdmFsdWUgdGhhdCBpc24ndCBhbGxvd2VkIGluIHRoZSBzaG9ydGhhbmQgaXMgcGFzc2VkIGluLlxuQG1peGluIG1hdC10eXBvZ3JhcGh5LWZvbnQtc2hvcnRoYW5kKCRmb250LXNpemUsICRmb250LXdlaWdodCwgJGxpbmUtaGVpZ2h0LCAkZm9udC1mYW1pbHkpIHtcbiAgLy8gSWYgYW55IG9mIHRoZSB2YWx1ZXMgYXJlIHNldCB0byBgaW5oZXJpdGAsIHdlIGNhbid0IHVzZSB0aGUgc2hvcnRoYW5kXG4gIC8vIHNvIHdlIGZhbGwgYmFjayB0byBwYXNzaW5nIGluIHRoZSBpbmRpdmlkdWFsIHByb3BlcnRpZXMuXG4gIEBpZiAoJGZvbnQtc2l6ZSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IGluaGVyaXQgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gaW5oZXJpdCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtc2l6ZSA9PSBudWxsIG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IG51bGwgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gbnVsbCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBudWxsKSB7XG5cbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIE90aGVyd2lzZSB1c2UgdGhlIHNob3J0aGFuZCBgZm9udGAsIGJlY2F1c2UgaXQncyB0aGUgbGVhc3QgYW1vdW50IG9mIGJ5dGVzLiBOb3RlXG4gICAgLy8gdGhhdCB3ZSBuZWVkIHRvIHVzZSBpbnRlcnBvbGF0aW9uIGZvciBgZm9udC1zaXplL2xpbmUtaGVpZ2h0YCBpbiBvcmRlciB0byBwcmV2ZW50XG4gICAgLy8gU2FzcyBmcm9tIGRpdmlkaW5nIHRoZSB0d28gdmFsdWVzLlxuICAgIGZvbnQ6ICRmb250LXdlaWdodCAjeyRmb250LXNpemV9LyN7JGxpbmUtaGVpZ2h0fSAkZm9udC1mYW1pbHk7XG4gIH1cbn1cblxuLy8gQ29udmVydHMgYSB0eXBvZ3JhcGh5IGxldmVsIGludG8gQ1NTIHN0eWxlcy5cbkBtaXhpbiBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgJGxldmVsKSB7XG4gICRmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgJGxldmVsKTtcblxuICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZCgkZm9udC1zaXplLCAkZm9udC13ZWlnaHQsICRsaW5lLWhlaWdodCwgJGZvbnQtZmFtaWx5KTtcbiAgbGV0dGVyLXNwYWNpbmc6IG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpO1xufVxuXG5cbkBtaXhpbiBtYXQtb3B0aW9uLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAubWF0LW9wdGlvbiB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksXG4gICAgJjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgIH1cblxuICAgIC8vIEluIG11bHRpcGxlIG1vZGUgdGhlcmUgaXMgYSBjaGVja2JveCB0byBzaG93IHRoYXQgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC5cbiAgICAmLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuXG4gICAgJi5tYXQtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtb3B0aW9uLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LW9wdGlvbi10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1vcHRpb24ge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTIpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTIpO1xuICB9XG59XG5cblxuXG5AbWl4aW4gbWF0LXBzZXVkby1jaGVja2JveC10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuICAkY29sb3JlZC1ib3gtc2VsZWN0b3I6ICcubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlJztcblxuICAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCksIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICBjb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIHByaW1hcnkpKTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgdG8gdGhlIGFjY2VudCBjb2xvci4gTm90ZSB0aGF0IHRoZSBwc2V1ZG8gY2hlY2tib3hlcyBhcmUgbWVhbnQgdG8gaW5oZXJpdCB0aGVcbiAgLy8gdGhlbWUgZnJvbSB0aGVpciBwYXJlbnQsIHJhdGhlciB0aGFuIGltcGxlbWVudGluZyB0aGVpciBvd24gdGhlbWluZywgd2hpY2ggaXMgd2h5IHdlXG4gIC8vIGRvbid0IGF0dGFjaCB0byB0aGUgYG1hdC0qYCBjbGFzc2VzLiBBbHNvIG5vdGUgdGhhdCB0aGlzIG5lZWRzIHRvIGJlIGJlbG93IGAubWF0LXByaW1hcnlgXG4gIC8vIGluIG9yZGVyIHRvIGFsbG93IGZvciB0aGUgY29sb3IgdG8gYmUgb3ZlcndyaXR0ZW4gaWYgdGhlIGNoZWNrYm94IGlzIGluc2lkZSBhIHBhcmVudCB0aGF0XG4gIC8vIGhhcyBgbWF0LWFjY2VudGAgYW5kIGlzIHBsYWNlZCBpbnNpZGUgYW5vdGhlciBwYXJlbnQgdGhhdCBoYXMgYG1hdC1wcmltYXJ5YC5cbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSxcbiAgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpKTtcbiAgfVxuXG4gIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCB3YXJuKSk7XG4gIH1cblxuICAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICAmLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZDogJGRpc2FibGVkLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gUmVwcmVzZW50cyBhIHR5cG9ncmFwaHkgbGV2ZWwgZnJvbSB0aGUgTWF0ZXJpYWwgZGVzaWduIHNwZWMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktbGV2ZWwoXG4gICRmb250LXNpemUsXG4gICRsaW5lLWhlaWdodDogJGZvbnQtc2l6ZSxcbiAgJGZvbnQtd2VpZ2h0OiA0MDAsXG4gICRmb250LWZhbWlseTogbnVsbCxcbiAgJGxldHRlci1zcGFjaW5nOiBudWxsKSB7XG5cbiAgQHJldHVybiAoXG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLFxuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQsXG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodCxcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LFxuICAgIGxldHRlci1zcGFjaW5nOiAkbGV0dGVyLXNwYWNpbmdcbiAgKTtcbn1cblxuLy8gUmVwcmVzZW50cyBhIGNvbGxlY3Rpb24gb2YgdHlwb2dyYXBoeSBsZXZlbHMuXG4vLyBEZWZhdWx0cyBjb21lIGZyb20gaHR0cHM6Ly9tYXRlcmlhbC5pby9ndWlkZWxpbmVzL3N0eWxlL3R5cG9ncmFwaHkuaHRtbFxuLy8gTm90ZTogVGhlIHNwZWMgZG9lc24ndCBtZW50aW9uIGxldHRlciBzcGFjaW5nLiBUaGUgdmFsdWVzIGhlcmUgY29tZSBmcm9tXG4vLyBleWViYWxsaW5nIGl0IHVudGlsIGl0IGxvb2tlZCBleGFjdGx5IGxpa2UgdGhlIHNwZWMgZXhhbXBsZXMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktY29uZmlnKFxuICAkZm9udC1mYW1pbHk6ICAgJ1JvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmJyxcbiAgJGRpc3BsYXktNDogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDExMnB4LCAxMTJweCwgMzAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjA1ZW0pLFxuICAkZGlzcGxheS0zOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNTZweCwgNTZweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW0pLFxuICAkZGlzcGxheS0yOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNDVweCwgNDhweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAwNWVtKSxcbiAgJGRpc3BsYXktMTogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDM0cHgsIDQwcHgsIDQwMCksXG4gICRoZWFkbGluZTogICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgyNHB4LCAzMnB4LCA0MDApLFxuICAkdGl0bGU6ICAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMjBweCwgMzJweCwgNTAwKSxcbiAgJHN1YmhlYWRpbmctMjogIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE2cHgsIDI4cHgsIDQwMCksXG4gICRzdWJoZWFkaW5nLTE6ICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNXB4LCAyNHB4LCA0MDApLFxuICAkYm9keS0yOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMjRweCwgNTAwKSxcbiAgJGJvZHktMTogICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE0cHgsIDIwcHgsIDQwMCksXG4gICRjYXB0aW9uOiAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxMnB4LCAyMHB4LCA0MDApLFxuICAkYnV0dG9uOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMTRweCwgNTAwKSxcbiAgLy8gTGluZS1oZWlnaHQgbXVzdCBiZSB1bml0LWxlc3MgZnJhY3Rpb24gb2YgdGhlIGZvbnQtc2l6ZS5cbiAgJGlucHV0OiAgICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKGluaGVyaXQsIDEuMTI1LCA0MDApXG4pIHtcblxuICAvLyBEZWNsYXJlIGFuIGluaXRpYWwgbWFwIHdpdGggYWxsIG9mIHRoZSBsZXZlbHMuXG4gICRjb25maWc6IChcbiAgICBkaXNwbGF5LTQ6ICAgICAgJGRpc3BsYXktNCxcbiAgICBkaXNwbGF5LTM6ICAgICAgJGRpc3BsYXktMyxcbiAgICBkaXNwbGF5LTI6ICAgICAgJGRpc3BsYXktMixcbiAgICBkaXNwbGF5LTE6ICAgICAgJGRpc3BsYXktMSxcbiAgICBoZWFkbGluZTogICAgICAgJGhlYWRsaW5lLFxuICAgIHRpdGxlOiAgICAgICAgICAkdGl0bGUsXG4gICAgc3ViaGVhZGluZy0yOiAgICRzdWJoZWFkaW5nLTIsXG4gICAgc3ViaGVhZGluZy0xOiAgICRzdWJoZWFkaW5nLTEsXG4gICAgYm9keS0yOiAgICAgICAgICRib2R5LTIsXG4gICAgYm9keS0xOiAgICAgICAgICRib2R5LTEsXG4gICAgY2FwdGlvbjogICAgICAgICRjYXB0aW9uLFxuICAgIGJ1dHRvbjogICAgICAgICAkYnV0dG9uLFxuICAgIGlucHV0OiAgICAgICAgICAkaW5wdXQsXG4gICk7XG5cbiAgLy8gTG9vcCB0aHJvdWdoIHRoZSBsZXZlbHMgYW5kIHNldCB0aGUgYGZvbnQtZmFtaWx5YCBvZiB0aGUgb25lcyB0aGF0IGRvbid0IGhhdmUgb25lIHRvIHRoZSBiYXNlLlxuICAvLyBOb3RlIHRoYXQgU2FzcyBjYW4ndCBtb2RpZnkgbWFwcyBpbiBwbGFjZSwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIG1lcmdlIGFuZCByZS1hc3NpZ24uXG4gIEBlYWNoICRrZXksICRsZXZlbCBpbiAkY29uZmlnIHtcbiAgICBAaWYgbWFwLWdldCgkbGV2ZWwsIGZvbnQtZmFtaWx5KSA9PSBudWxsIHtcbiAgICAgICRuZXctbGV2ZWw6IG1hcC1tZXJnZSgkbGV2ZWwsIChmb250LWZhbWlseTogJGZvbnQtZmFtaWx5KSk7XG4gICAgICAkY29uZmlnOiBtYXAtbWVyZ2UoJGNvbmZpZywgKCRrZXk6ICRuZXctbGV2ZWwpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBZGQgdGhlIGJhc2UgZm9udCBmYW1pbHkgdG8gdGhlIGNvbmZpZy5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJGNvbmZpZywgKGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHkpKTtcbn1cblxuLy8gQWRkcyB0aGUgYmFzZSB0eXBvZ3JhcGh5IHN0eWxlcywgYmFzZWQgb24gYSBjb25maWcuXG5AbWl4aW4gbWF0LWJhc2UtdHlwb2dyYXBoeSgkY29uZmlnLCAkc2VsZWN0b3I6ICcubWF0LXR5cG9ncmFwaHknKSB7XG4gIC5tYXQtaDEsIC5tYXQtaGVhZGxpbmUsICN7JHNlbGVjdG9yfSBoMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGhlYWRsaW5lKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oMiwgLm1hdC10aXRsZSwgI3skc2VsZWN0b3J9IGgyIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gIH1cblxuICAubWF0LWgzLCAubWF0LXN1YmhlYWRpbmctMiwgI3skc2VsZWN0b3J9IGgzIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oNCwgLm1hdC1zdWJoZWFkaW5nLTEsICN7JHNlbGVjdG9yfSBoNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgfVxuXG4gIC8vIE5vdGU6IHRoZSBzcGVjIGRvZXNuJ3QgaGF2ZSBhbnl0aGluZyB0aGF0IHdvdWxkIGNvcnJlc3BvbmQgdG8gaDUgYW5kIGg2LCBidXQgd2UgYWRkIHRoZXNlIGZvclxuICAvLyBjb25zaXN0ZW5jeS4gVGhlIGZvbnQgc2l6ZXMgY29tZSBmcm9tIHRoZSBDaHJvbWUgdXNlciBhZ2VudCBzdHlsZXMgd2hpY2ggaGF2ZSBoNSBhdCAwLjgzZW1cbiAgLy8gYW5kIGg2IGF0IDAuNjdlbS5cbiAgLm1hdC1oNSwgI3skc2VsZWN0b3J9IGg1IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZChcbiAgICAgICAvLyBjYWxjIGlzIHVzZWQgaGVyZSB0byBzdXBwb3J0IGNzcyB2YXJpYWJsZXNcbiAgICAgIGNhbGMoI3ttYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSl9ICogMC44MyksXG4gICAgICBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSlcbiAgICApO1xuXG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgfVxuXG4gIC5tYXQtaDYsICN7JHNlbGVjdG9yfSBoNiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktZm9udC1zaG9ydGhhbmQoXG4gICAgICAgLy8gY2FsYyBpcyB1c2VkIGhlcmUgdG8gc3VwcG9ydCBjc3MgdmFyaWFibGVzXG4gICAgICBjYWxjKCN7bWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpfSAqIDAuNjcpLFxuICAgICAgbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSksXG4gICAgICBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTEpXG4gICAgKTtcblxuICAgIG1hcmdpbjogMCAwIDEycHg7XG4gIH1cblxuICAubWF0LWJvZHktc3Ryb25nLCAubWF0LWJvZHktMiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMik7XG4gIH1cblxuICAubWF0LWJvZHksIC5tYXQtYm9keS0xLCAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuXG4gICAgcCB7XG4gICAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc21hbGwsIC5tYXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGNhcHRpb24pO1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTQsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktNCk7XG4gICAgbWFyZ2luOiAwIDAgNTZweDtcbiAgfVxuXG4gIC5tYXQtZGlzcGxheS0zLCAjeyRzZWxlY3Rvcn0gLm1hdC1kaXNwbGF5LTMge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBkaXNwbGF5LTMpO1xuICAgIG1hcmdpbjogMCAwIDY0cHg7XG4gIH1cblxuICAubWF0LWRpc3BsYXktMiwgI3skc2VsZWN0b3J9IC5tYXQtZGlzcGxheS0yIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgZGlzcGxheS0yKTtcbiAgICBtYXJnaW46IDAgMCA2NHB4O1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTEsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktMSk7XG4gICAgbWFyZ2luOiAwIDAgNjRweDtcbiAgfVxufVxuXG5cblxuXG5AbWl4aW4gbWF0LWF1dG9jb21wbGV0ZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgLy8gU2VsZWN0ZWQgb3B0aW9ucyBpbiBhdXRvY29tcGxldGVzIHNob3VsZCBub3QgYmUgZ3JheSwgYnV0IHdlXG4gICAgLy8gb25seSB3YW50IHRvIG92ZXJyaWRlIHRoZSBiYWNrZ3JvdW5kIGZvciBzZWxlY3RlZCBvcHRpb25zIGlmXG4gICAgLy8gdGhleSBhcmUgKm5vdCogaW4gaG92ZXIgb3IgZm9jdXMgc3RhdGUuIFRoaXMgY2hhbmdlIGhhcyB0byBiZVxuICAgIC8vIG1hZGUgaGVyZSBiZWNhdXNlIGJhc2Ugb3B0aW9uIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlXG4gICAgLy8gYXV0b2NvbXBsZXRlIGFuZCB0aGUgc2VsZWN0LlxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAgICY6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbkBtaXhpbiBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cbi8vIFRoaXMgY29udGFpbnMgYWxsIG9mIHRoZSBzdHlsZXMgZm9yIHRoZSBiYWRnZVxuLy8gcmF0aGVyIHRoYW4ganVzdCB0aGUgY29sb3IvdGhlbWUgYmVjYXVzZSBvZlxuLy8gbm8gc3R5bGUgc2hlZXQgc3VwcG9ydCBmb3IgZGlyZWN0aXZlcy5cblxuXG5cblxuXG4kbWF0LWJhZGdlLWZvbnQtc2l6ZTogMTJweDtcbiRtYXQtYmFkZ2UtZm9udC13ZWlnaHQ6IDYwMDtcbiRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplOiAyMnB4ICFkZWZhdWx0O1xuJG1hdC1iYWRnZS1zbWFsbC1zaXplOiAkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSAtIDY7XG4kbWF0LWJhZGdlLWxhcmdlLXNpemU6ICRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplICsgNjtcblxuLy8gTWl4aW4gZm9yIGJ1aWxkaW5nIG9mZnNldCBnaXZlbiBkaWZmZXJlbnQgc2l6ZXNcbkBtaXhpbiBfbWF0LWJhZGdlLXNpemUoJHNpemUpIHtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJHNpemU7XG4gIH1cblxuICAmLm1hdC1iYWRnZS1hYm92ZSB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIHRvcDogLSRzaXplIC8gMjtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1iZWxvdyB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGJvdHRvbTogLSRzaXplIC8gMjtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBsZWZ0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICByaWdodDogLSRzaXplO1xuICAgIH1cbiAgfVxuXG4gIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2Utb3ZlcmxhcCB7XG4gICAgJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGxlZnQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIHJpZ2h0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJhZGdlLXRoZW1lKCR0aGVtZSkge1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdCB7XG4gICAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtYWNjZW50IHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlLXdhcm4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1oaWRkZW4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtZGlzYWJsZWQge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAkYXBwLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2JhY2tncm91bmQnKTtcbiAgICAgICRiYWRnZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24pO1xuXG4gICAgICAvLyBUaGUgZGlzYWJsZWQgY29sb3IgdXN1YWxseSBoYXMgc29tZSBraW5kIG9mIG9wYWNpdHksIGJ1dCBiZWNhdXNlIHRoZSBiYWRnZSBpcyBvdmVybGF5ZWRcbiAgICAgIC8vIG9uIHRvcCBvZiBzb21ldGhpbmcgZWxzZSwgaXQgd29uJ3QgbG9vayBnb29kIGlmIGl0J3Mgb3BhcXVlLiBJZiBpdCBpcyBhIGNvbG9yICp0eXBlKixcbiAgICAgIC8vIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZCB1c2luZ1xuICAgICAgLy8gdGhlIHZhbHVlIHRvIGRldGVybWluZSB0aGUgcGVyY2VudGFnZSBvZiB0aGUgYmFja2dyb3VuZCB0byBwdXQgaW50byBmb3JlZ3JvdW5kIHdoZW5cbiAgICAgIC8vIG1peGluZyB0aGUgY29sb3JzIHRvZ2V0aGVyLlxuICAgICAgQGlmICh0eXBlLW9mKCRiYWRnZS1jb2xvcikgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGFwcC1iYWNrZ3JvdW5kKSA9PSBjb2xvcikge1xuICAgICAgICAkYmFkZ2Utb3BhY2l0eTogb3BhY2l0eSgkYmFkZ2UtY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBtaXgoJGFwcC1iYWNrZ3JvdW5kLCByZ2JhKCRiYWRnZS1jb2xvciwgMSksICgxIC0gJGJhZGdlLW9wYWNpdHkpICogMTAwJSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRiYWRnZS1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4gIC5tYXQtYmFkZ2UtY29udGVudC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIFRoZSBhY3RpdmUgY2xhc3MgaXMgYWRkZWQgYWZ0ZXIgdGhlIGVsZW1lbnQgaXMgYWRkZWRcbiAgLy8gc28gaXQgY2FuIGFuaW1hdGUgc2NhbGUgdG8gZGVmYXVsdFxuICAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gICAgLy8gU2NhbGUgdG8gYG5vbmVgIGluc3RlYWQgb2YgYDFgIHRvIGF2b2lkIGJsdXJyeSB0ZXh0IGluIHNvbWUgYnJvd3NlcnMuXG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1zbWFsbCB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2Utc21hbGwtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1tZWRpdW0ge1xuICAgIEBpbmNsdWRlIF9tYXQtYmFkZ2Utc2l6ZSgkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1sYXJnZSB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2UtbGFyZ2Utc2l6ZSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXdlaWdodDogJG1hdC1iYWRnZS1mb250LXdlaWdodDtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplO1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgLy8gU2V0IHRoZSBmb250IHNpemUgdG8gNzUlIG9mIHRoZSBvcmlnaW5hbC5cbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMC43NTtcbiAgfVxuXG4gIC5tYXQtYmFkZ2UtbGFyZ2UgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMjtcbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMTYsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cblxuJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5OiAwLjE7XG5cbi8vIEFwcGxpZXMgYSBmb2N1cyBzdHlsZSB0byBhbiBtYXQtYnV0dG9uIGVsZW1lbnQgZm9yIGVhY2ggb2YgdGhlIHN1cHBvcnRlZCBwYWxldHRlcy5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LWNvbG9yKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAmLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gIH1cblxuICAmLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICB9XG5cbiAgJi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4pO1xuICB9XG5cbiAgJltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8gQXBwbGllcyB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgYSByaXBwbGUuIElmIHRoZSB2YWx1ZSBwcm92aWRlZCBpcyBub3QgYSBTYXNzIGNvbG9yLFxuLy8gd2UgYXNzdW1lIHRoYXQgd2UndmUgYmVlbiBnaXZlbiBhIENTUyB2YXJpYWJsZS4gU2luY2Ugd2UgY2FuJ3QgcGVyZm9ybSBhbHBoYS1ibGVuZGluZ1xuLy8gb24gYSBDU1MgdmFyaWFibGUsIHdlIGluc3RlYWQgYWRkIHRoZSBvcGFjaXR5IGRpcmVjdGx5IHRvIHRoZSByaXBwbGUgZWxlbWVudC5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkcGFsZXR0ZSwgJGh1ZSwgJG9wYWNpdHkpIHtcbiAgJGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgJGh1ZSwgJG9wYWNpdHkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgQGlmICh0eXBlLW9mKCRiYWNrZ3JvdW5kLWNvbG9yKSAhPSBjb2xvcikge1xuICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1yaXBwbGUtY29sb3IoJHRoZW1lLCAkaHVlLCAkb3BhY2l0eTogJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5KSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gICYubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tcmlwcGxlLWJhY2tncm91bmQoJHByaW1hcnksICRodWUsICRvcGFjaXR5KTtcbiAgfVxuXG4gICYubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkYWNjZW50LCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cblxuICAmLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1iYWNrZ3JvdW5kKCR3YXJuLCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cbn1cblxuLy8gQXBwbGllcyBhIHByb3BlcnR5IHRvIGFuIG1hdC1idXR0b24gZWxlbWVudCBmb3IgZWFjaCBvZiB0aGUgc3VwcG9ydGVkIHBhbGV0dGVzLlxuQG1peGluIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJHByb3BlcnR5LCAkaHVlKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICYubWF0LXByaW1hcnkge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwcmltYXJ5LCAkaHVlKTtcbiAgfVxuICAmLm1hdC1hY2NlbnQge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRhY2NlbnQsICRodWUpO1xuICB9XG4gICYubWF0LXdhcm4ge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCR3YXJuLCAkaHVlKTtcbiAgfVxuXG4gICYubWF0LXByaW1hcnksICYubWF0LWFjY2VudCwgJi5tYXQtd2FybiwgJltkaXNhYmxlZF0ge1xuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICRwYWxldHRlOiBpZigkcHJvcGVydHkgPT0gJ2NvbG9yJywgJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKTtcbiAgICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwYWxldHRlLCBkaXNhYmxlZC1idXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJ1dHRvbi10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24ge1xuICAgIC8vIEJ1dHRvbnMgd2l0aG91dCBhIGJhY2tncm91bmQgY29sb3Igc2hvdWxkIGluaGVyaXQgdGhlIGZvbnQgY29sb3IuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvXG4gICAgLy8gZW5zdXJlIHRoYXQgdGhlIGJ1dHRvbiBpcyByZWFkYWJsZSBvbiBjdXN0b20gYmFja2dyb3VuZCBjb2xvcnMuIEl0J3Mgd3JvbmcgdG8gYWx3YXlzIGFzc3VtZVxuICAgIC8vIHRoYXQgdGhvc2UgYnV0dG9ucyBhcmUgYWx3YXlzIHBsYWNlZCBpbnNpZGUgb2YgY29udGFpbmVycyB3aXRoIHRoZSBkZWZhdWx0IGJhY2tncm91bmRcbiAgICAvLyBjb2xvciBvZiB0aGUgdGhlbWUgKGUuZy4gdGhlbWVkIHRvb2xiYXJzKS5cbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJ2NvbG9yJywgdGV4dCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tZm9jdXMtb3ZlcmxheS1jb2xvcigkdGhlbWUpO1xuXG4gICAgLy8gU2V0dXAgdGhlIHJpcHBsZSBjb2xvciB0byBiZSBiYXNlZCBvbiB0aGUgdGV4dCBjb2xvci4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHJpcHBsZXNcbiAgICAvLyBhcmUgbWF0Y2hpbmcgd2l0aCB0aGUgY3VycmVudCB0aGVtZSBwYWxldHRlIGFuZCBhcmUgaW4gY29udHJhc3QgdG8gdGhlIGJhY2tncm91bmQgY29sb3JcbiAgICAvLyAoZS5nIGluIHRoZW1lZCB0b29sYmFycykuXG4gICAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBvcGFjaXR5OiAkX21hdC1idXR0b24tcmlwcGxlLW9wYWNpdHk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZDogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gIH1cblxuICAvLyBOb3RlOiB0aGlzIG5lZWRzIGEgYml0IGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHdlJ3JlIG5vdCBndWFyYW50ZWVkIHRoZSBpbmNsdXNpb25cbiAgLy8gb3JkZXIgb2YgdGhlIHRoZW1lIHN0eWxlcyBhbmQgdGhlIGJ1dHRvbiByZXNldCBtYXkgZW5kIHVwIHJlc2V0dGluZyB0aGlzIGFzIHdlbGwuXG4gIC5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWZsYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICAvLyBEZWZhdWx0IGZvbnQgYW5kIGJhY2tncm91bmQgY29sb3Igd2hlbiBub3QgdXNpbmcgYW55IGNvbG9yIHBhbGV0dGUuXG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCByYWlzZWQtYnV0dG9uKTtcblxuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJ2NvbG9yJywgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tdGhlbWUtcHJvcGVydHkoJHRoZW1lLCAnYmFja2dyb3VuZC1jb2xvcicsIGRlZmF1bHQpO1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1jb2xvcigkdGhlbWUsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC1zdHJva2VkLWJ1dHRvbiwgLm1hdC1mbGF0LWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtcmFpc2VkLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcblxuICAgICY6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig4LCAkdGhlbWUpO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mYWIsIC5tYXQtbWluaS1mYWIge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDYsICR0aGVtZSk7XG5cbiAgICAmOm5vdChbZGlzYWJsZWRdKTphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMTIsICR0aGVtZSk7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJHRoZW1lKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1idXR0b24tdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24sXG4gIC5tYXQtZmxhdC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYnV0dG9uKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGRpdmlkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBmb2N1c2VkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGZvY3VzZWQtYnV0dG9uLCAxKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggJGRpdmlkZXItY29sb3I7XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJvcmRlci1yaWdodDogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwge1xuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCAkZGl2aWRlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBzZWxlY3RlZC1idXR0b24pO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLWJ1dHRvbik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24tdG9nZ2xlKTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIH1cblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGJvcmRlcjogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtY2FyZC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWNhcmQge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDEsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgIC8vIE5lZWRzIGV4dHJhIHNwZWNpZmljaXR5IHRvIGJlIGFibGUgdG8gb3ZlcnJpZGUgdGhlIGVsZXZhdGlvbiBzZWxlY3RvcnMuXG4gICAgJi5tYXQtY2FyZC1mbGF0IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jYXJkLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWNhcmQge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhcmQtdGl0bGUge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgaGVhZGxpbmUpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgdGl0bGUpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxlIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgdGl0bGUpO1xuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlLFxuICAubWF0LWNhcmQtY29udGVudCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtY2hlY2tib3gtdGhlbWUoJHRoZW1lKSB7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG5cbiAgLy8gVGhlIGNvbG9yIG9mIHRoZSBjaGVja2JveCdzIGNoZWNrbWFyayAvIG1peGVkbWFyay5cbiAgJGNoZWNrYm94LW1hcmstY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuXG4gIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gICAgZmlsbDogJGNoZWNrYm94LW1hcmstY29sb3I7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgICAvLyAhaW1wb3J0YW50IGlzIG5lZWRlZCBoZXJlIGJlY2F1c2UgYSBzdHJva2UgbXVzdCBiZSBzZXQgYXMgYW5cbiAgICAvLyBhdHRyaWJ1dGUgb24gdGhlIFNWRyBpbiBvcmRlciBmb3IgbGluZSBhbmltYXRpb24gdG8gd29yayBwcm9wZXJseS5cbiAgICBzdHJva2U6ICRjaGVja2JveC1tYXJrLWNvbG9yICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdChibGFjay1vbi13aGl0ZSkge1xuICAgICAgLy8gSGF2aW5nIHRoZSBvbmUgYWJvdmUgYmUgIWltcG9ydGFudCBlbmRzIHVwIG92ZXJyaWRpbmcgdGhlIGJyb3dzZXIncyBhdXRvbWF0aWNcbiAgICAgIC8vIGNvbG9yIGludmVyc2lvbiBzbyB3ZSBuZWVkIHRvIHJlLWludmVydCBpdCBvdXJzZWx2ZXMgZm9yIGJsYWNrLW9uLXdoaXRlLlxuICAgICAgc3Ryb2tlOiAjMDAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGVja2JveC1tYXJrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLCAubWF0LWNoZWNrYm94LWNoZWNrZWQge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICAmLm1hdC1jaGVja2JveC1jaGVja2VkLFxuICAgICYubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tib3gtY2hlY2tlZCkge1xuICAgICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG4gIH1cblxuICAvLyBUaGlzIG9uZSBpcyBtb3ZlZCBkb3duIGhlcmUgc28gaXQgY2FuIHRhcmdldCBib3RoXG4gIC8vIHRoZSB0aGVtZSBjb2xvcnMgYW5kIHRoZSBkaXNhYmxlZCBzdGF0ZS5cbiAgQGluY2x1ZGUgY2RrLWhpZ2gtY29udHJhc3Qge1xuICAgIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICAvLyBOZWVkcyB0byBiZSByZW1vdmVkIGJlY2F1c2UgaXQgaGlkZXMgdGhlIGNoZWNrYm94IG91dGxpbmUuXG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gIC8vIHRvIGNvbnRyb2wgaG93IG9wYXF1ZSB0aGUgcmlwcGxlIHNob3VsZCBiZS5cbiAgLm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXBfZ2V0KG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKSwgYmFzZSk7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLFxuICAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGVja2JveC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1jaGVja2JveCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC8vIFRPRE8oa2FyYSk6IFJlbW92ZSB0aGlzIHN0eWxlIHdoZW4gZml4aW5nIHZlcnRpY2FsIGJhc2VsaW5lXG4gIC5tYXQtY2hlY2tib3gtbGF5b3V0IC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgIGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxufVxuXG5cblxuXG5cblxuJG1hdC1jaGlwLXJlbW92ZS1mb250LXNpemU6IDE4cHg7XG5cbkBtaXhpbiBtYXQtY2hpcHMtY29sb3IoJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGZvcmVncm91bmQ7XG5cbiAgLm1hdC1jaGlwLXJlbW92ZSB7XG4gICAgY29sb3I6ICRmb3JlZ3JvdW5kO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCRwYWxldHRlKSB7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy1jb2xvcihtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpLCBtYXQtY29sb3IoJHBhbGV0dGUpKTtcblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QsIDAuMSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgJHVuc2VsZWN0ZWQtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCB1bnNlbGVjdGVkLWNoaXApO1xuICAkdW5zZWxlY3RlZC1mb3JlZ3JvdW5kOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCB7XG4gICAgQGluY2x1ZGUgbWF0LWNoaXBzLWNvbG9yKCR1bnNlbGVjdGVkLWZvcmVncm91bmQsICR1bnNlbGVjdGVkLWJhY2tncm91bmQpO1xuXG4gICAgJjpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSB7XG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDMsICR0aGVtZSk7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjU0O1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWNoaXAtZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogMC40O1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hcF9nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZCB7XG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2hpcHMtdGhlbWUtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWNoaXAge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcblxuICAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uLFxuICAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkbWF0LWNoaXAtcmVtb3ZlLWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXRhYmxlLXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdGFibGUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdGFibGUgdGhlYWQsIC5tYXQtdGFibGUgdGJvZHksIC5tYXQtdGFibGUgdGZvb3QsXG4gIG1hdC1oZWFkZXItcm93LCBtYXQtcm93LCBtYXQtZm9vdGVyLXJvdyxcbiAgW21hdC1oZWFkZXItcm93XSwgW21hdC1yb3ddLCBbbWF0LWZvb3Rlci1yb3ddLFxuICAubWF0LXRhYmxlLXN0aWNreSB7XG4gICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgfVxuXG4gIG1hdC1yb3csIG1hdC1oZWFkZXItcm93LCBtYXQtZm9vdGVyLXJvdyxcbiAgdGgubWF0LWhlYWRlci1jZWxsLCB0ZC5tYXQtY2VsbCwgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYmxlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRhYmxlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtY2VsbCwgLm1hdC1mb290ZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuXG5cblxuJG1hdC1kYXRlcGlja2VyLXNlbGVjdGVkLXRvZGF5LWJveC1zaGFkb3ctd2lkdGg6IDFweDtcbiRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudDogMC42O1xuJG1hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50OiAwLjI7XG4kbWF0LWNhbGVuZGFyLWJvZHktZm9udC1zaXplOiAxM3B4ICFkZWZhdWx0O1xuJG1hdC1jYWxlbmRhci13ZWVrZGF5LXRhYmxlLWZvbnQtc2l6ZTogMTFweCAhZGVmYXVsdDtcblxuQG1peGluIF9tYXQtZGF0ZXBpY2tlci1jb2xvcigkcGFsZXR0ZSkge1xuICAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgICRiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRiYWNrZ3JvdW5kKSA9PSBjb2xvcikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZmFkZS1vdXQoJGJhY2tncm91bmQsICRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIElmIHdlIGNvdWxkbid0IHJlc29sdmUgdG8gYmFja2dyb3VuZCB0byBhIGNvbG9yIChlLmcuIGl0J3MgYSBDU1MgdmFyaWFibGUpLFxuICAgICAgLy8gZmFsbCBiYWNrIHRvIGZhZGluZyB0aGUgY29udGVudCBvdXQgdmlhIGBvcGFjaXR5YC5cbiAgICAgIG9wYWNpdHk6ICRtYXQtZGF0ZXBpY2tlci10b2RheS1mYWRlLWFtb3VudDtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwICRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC10b2RheS1ib3gtc2hhZG93LXdpZHRoXG4gICAgICAgICAgICAgICAgbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG5cbiAgLm1hdC1jYWxlbmRhci1hcnJvdyB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC8vIFRoZSBwcmV2L25leHQgYnV0dG9ucyBuZWVkIGEgYml0IG1vcmUgc3BlY2lmaWNpdHkgdG9cbiAgLy8gYXZvaWQgYmVpbmcgb3ZlcndyaXR0ZW4gYnkgdGhlIC5tYXQtaWNvbi1idXR0b24uXG4gIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItcHJldmlvdXMtYnV0dG9uIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQpOmhvdmVyLFxuICAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSxcbiAgLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSB7XG4gICAgJiA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICAvLyBOb3RlOiB0aG91Z2ggaXQncyBub3QgdGV4dCwgdGhlIGJvcmRlciBpcyBhIGhpbnQgYWJvdXQgdGhlIGZhY3QgdGhhdCB0aGlzIGlzIHRvZGF5J3MgZGF0ZSxcbiAgICAvLyBzbyB3ZSB1c2UgdGhlIGhpbnQgY29sb3IuXG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICAgICRjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogZmFkZS1vdXQoJGNvbG9yLCAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBJZiB0aGUgY29sb3IgZGlkbid0IHJlc29sdmUgdG8gYSBjb2xvciB2YWx1ZSwgYnV0IHNvbWV0aGluZyBsaWtlIGEgQ1NTIHZhcmlhYmxlLCB3ZSBjYW4ndFxuICAgICAgLy8gZmFkZSBpdCBvdXQgc28gd2UgZmFsbCBiYWNrIHRvIHJlZHVjaW5nIHRoZSBlbGVtZW50IG9wYWNpdHkuIE5vdGUgdGhhdCB3ZSBkb24ndCB1c2UgdGhlXG4gICAgICAvLyAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQsIGJlY2F1c2UgaGludCB0ZXh0IHVzdWFsbHkgaGFzIHNvbWUgb3BhY2l0eSBhcHBsaWVkXG4gICAgICAvLyB0byBpdCBhbHJlYWR5IGFuZCB3ZSBkb24ndCB3YW50IHRoZW0gdG8gc3RhY2sgb24gdG9wIG9mIGVhY2ggb3RoZXIuXG4gICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KSk7XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDQsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItY29sb3IobWFwLWdldCgkdGhlbWUsIGFjY2VudCkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJHRoZW1lLCB3YXJuKSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQtdG91Y2gge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gIH1cblxuICAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSksIHRleHQpO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIGFjY2VudCksIHRleHQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgd2FybiksIHRleHQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtY2FsZW5kYXIge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHkge1xuICAgIGZvbnQtc2l6ZTogJG1hdC1jYWxlbmRhci1ib2R5LWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCxcbiAgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHRoIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiAkbWF0LWNhbGVuZGFyLXdlZWtkYXktdGFibGUtZm9udC1zaXplO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1kaWFsb2ctdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1kaWFsb2ctY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigyNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpYWxvZyk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1kaWFsb2ctdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWV4cGFuc2lvbi1wYW5lbC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1hY3Rpb24tcm93IHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwge1xuICAgICYgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAgICYgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgJjpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICAgICY6bm90KFthcmlhLWRpc2FibGVkPSd0cnVlJ10pIHtcbiAgICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZSB0aGUgaG92ZXIgb24gdG91Y2ggZGV2aWNlcyBzaW5jZSBpdCBjYW4gYXBwZWFyIGxpa2UgaXQgaXMgc3R1Y2suIFdlIGNhbid0IHVzZVxuICAvLyBgQG1lZGlhIChob3ZlcilgIGFib3ZlLCBiZWNhdXNlIHRoZSBkZXNrdG9wIHN1cHBvcnQgYnJvd3NlciBzdXBwb3J0IGlzbid0IGdyZWF0LlxuICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpOm5vdChbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddKVxuICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbixcbiAgLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtYnV0dG9uKTtcblxuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZXhwYW5zaW9uLXBhbmVsLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cbi8vIFRoaXMgbWl4aW4gd2lsbCBlbnN1cmUgdGhhdCBsaW5lcyB0aGF0IG92ZXJmbG93IHRoZSBjb250YWluZXIgd2lsbCBoaWRlIHRoZSBvdmVyZmxvdyBhbmRcbi8vIHRydW5jYXRlIG5lYXRseSB3aXRoIGFuIGVsbGlwc2lzLlxuQG1peGluIG1hdC10cnVuY2F0ZS1saW5lKCkge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8gTWl4aW4gdG8gcHJvdmlkZSBhbGwgbWF0LWxpbmUgc3R5bGVzLCBjaGFuZ2luZyBzZWNvbmRhcnkgZm9udCBzaXplIGJhc2VkIG9uIHdoZXRoZXIgdGhlIGxpc3Rcbi8vIGlzIGluIGRlbnNlIG1vZGUuXG5AbWl4aW4gbWF0LWxpbmUtYmFzZSgkc2Vjb25kYXJ5LWZvbnQtc2l6ZSkge1xuICAubWF0LWxpbmUge1xuICAgIEBpbmNsdWRlIG1hdC10cnVuY2F0ZS1saW5lKCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC8vIGFsbCBsaW5lcyBidXQgdGhlIHRvcCBsaW5lIHNob3VsZCBoYXZlIHNtYWxsZXIgdGV4dFxuICAgICY6bnRoLWNoaWxkKG4rMikge1xuICAgICAgZm9udC1zaXplOiAkc2Vjb25kYXJ5LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBtaXhpbiBub3JtYWxpemVzIGRlZmF1bHQgZWxlbWVudCBzdHlsZXMsIGUuZy4gZm9udCB3ZWlnaHQgZm9yIGhlYWRpbmcgdGV4dC5cbkBtaXhpbiBtYXQtbm9ybWFsaXplLXRleHQoKSB7XG4gICYgPiAqIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBUaGlzIG1peGluIHByb3ZpZGVzIGJhc2Ugc3R5bGVzIGZvciB0aGUgd3JhcHBlciBhcm91bmQgbWF0LWxpbmUgZWxlbWVudHMgaW4gYSBsaXN0LlxuQG1peGluIG1hdC1saW5lLXdyYXBwZXItYmFzZSgpIHtcbiAgQGluY2x1ZGUgbWF0LW5vcm1hbGl6ZS10ZXh0KCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLy8gTXVzdCByZW1vdmUgd3JhcHBlciB3aGVuIGxpbmVzIGFyZSBlbXB0eSBvciBpdCB0YWtlcyB1cCBob3Jpem9udGFsXG4gIC8vIHNwYWNlIGFuZCBwdXNoZXMgb3RoZXIgZWxlbWVudHMgdG8gdGhlIHJpZ2h0LlxuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlIHRoaXMgZW1wdHkgbWl4aW4gZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIG90aGVyIGNvbXBvbmVudHMuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10aGVtZSgkdGhlbWUpIHsgfVxuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1ncmlkLXRpbGUtaGVhZGVyLFxuICAubWF0LWdyaWQtdGlsZS1mb290ZXIge1xuICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuLy8gSW5jbHVkZSB0aGlzIGVtcHR5IG1peGluIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBvdGhlciBjb21wb25lbnRzLlxuQG1peGluIG1hdC1pY29uLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWljb24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1pY29uLXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cblxuXG5cblxuLy8gUmVuZGVycyBhIGdyYWRpZW50IGZvciBzaG93aW5nIHRoZSBkYXNoZWQgbGluZSB3aGVuIHRoZSBpbnB1dCBpcyBkaXNhYmxlZC5cbi8vIFVubGlrZSB1c2luZyBhIGJvcmRlciwgYSBncmFkaWVudCBhbGxvd3MgdXMgdG8gYWRqdXN0IHRoZSBzcGFjaW5nIG9mIHRoZSBkb3R0ZWQgbGluZVxuLy8gdG8gbWF0Y2ggdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuQG1peGluIG1hdC1jb250cm9sLWRpc2FibGVkLXVuZGVybGluZSgkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkY29sb3IgMCUsICRjb2xvciAzMyUsIHRyYW5zcGFyZW50IDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0cHggMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG4vLyBGaWd1cmVzIG91dCB0aGUgY29sb3Igb2YgdGhlIHBsYWNlaG9sZGVyIGZvciBhIGZvcm0gY29udHJvbC5cbi8vIFVzZWQgcHJpbWFyaWx5IHRvIHByZXZlbnQgdGhlIHZhcmlvdXMgZm9ybSBjb250cm9scyBmcm9tXG4vLyBiZWNvbWluZyBvdXQgb2Ygc3luYyBzaW5jZSB0aGVzZSBjb2xvcnMgYXJlbid0IGluIGEgcGFsZXR0ZS5cbkBmdW5jdGlvbiBfbWF0LWNvbnRyb2wtcGxhY2Vob2xkZXItY29sb3IoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gIEByZXR1cm4gbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNSwgMC40MikpO1xufVxuXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIG1hdGVyaWFsL25vLXByZWZpeGVzICovXG5AbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlKSB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgLW1vei11c2VyLXNlbGVjdDogJHZhbHVlO1xuICAtbXMtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbn1cblxuQG1peGluIGlucHV0LXBsYWNlaG9sZGVyIHtcbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWIge1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgY3Vyc29yOiBncmFiO1xufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWJiaW5nIHtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmFsdWUpIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiAkdmFsdWU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6ICR2YWx1ZTtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuXG5cbkBtaXhpbiBtYXQtaW5wdXQtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCxcbiAgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuXG4gICAgQGluY2x1ZGUgaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IF9tYXQtY29udHJvbC1wbGFjZWhvbGRlci1jb2xvcigkdGhlbWUpO1xuICAgIH1cblxuICAgIC8vIE9uIGRhcmsgdGhlbWVzIHdlIHNldCB0aGUgbmF0aXZlIGBzZWxlY3RgIGNvbG9yIHRvIHNvbWUgc2hhZGUgb2Ygd2hpdGUsXG4gICAgLy8gaG93ZXZlciB0aGUgY29sb3IgcHJvcGFnYXRlcyB0byBhbGwgb2YgdGhlIGBvcHRpb25gIGVsZW1lbnRzLCB3aGljaCBhcmVcbiAgICAvLyBhbHdheXMgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kIGluc2lkZSB0aGUgZHJvcGRvd24sIGNhdXNpbmcgdGhlbSB0byBibGVuZCBpbi5cbiAgICAvLyBTaW5jZSB3ZSBjYW4ndCBjaGFuZ2UgYmFja2dyb3VuZCBvZiB0aGUgZHJvcGRvd24sIHdlIG5lZWQgdG8gZXhwbGljaXRseVxuICAgIC8vIHJlc2V0IHRoZSBjb2xvciBvZiB0aGUgb3B0aW9ucyB0byBzb21ldGhpbmcgZGFyay5cbiAgICBAaWYgKG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKSkge1xuICAgICAgb3B0aW9uIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLXByaW1hcnktdGV4dDtcbiAgICAgIH1cblxuICAgICAgb3B0aW9uOmRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLWRpc2FibGVkLXRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbiAgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1pbnB1dC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcblxuICAvLyA8aW5wdXQ+IGVsZW1lbnRzIHNlZW0gdG8gaGF2ZSB0aGVpciBoZWlnaHQgc2V0IHNsaWdodGx5IHRvbyBsYXJnZSBvbiBTYWZhcmkgY2F1c2luZyB0aGUgdGV4dCB0b1xuICAvLyBiZSBtaXNhbGlnbmVkIHcuci50LiB0aGUgcGxhY2Vob2xkZXIuIEFkZGluZyB0aGlzIG1hcmdpbiBjb3JyZWN0cyBpdC5cbiAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IC0kbGluZS1zcGFjaW5nICogMWVtO1xuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtbGlzdC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlzYWJsZWQtbGlzdC1vcHRpb24pO1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbixcbiAgLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbSxcbiAgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbSB7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdob3ZlcicpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWxpc3QtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gICRmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuXG4gIC5tYXQtbGlzdC1pdGVtIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgbGlzdFxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMik7XG4gICAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKSk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpKTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMik7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cblxuICAvLyBEZW5zZSBsaXN0XG4gIC5tYXQtbGlzdC1iYXNlW2RlbnNlXSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pKTtcbiAgICB9XG5cbiAgICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgfVxuXG4gICAgLm1hdC1zdWJoZWFkZXIge1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1tZW51LXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtbWVudS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ3RleHQnKTtcblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICYsICY6OmFmdGVyIHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2Rpc2FibGVkJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLFxuICAubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXI6OmFmdGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnaWNvbicpO1xuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW06aG92ZXIsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZCB7XG4gICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnaG92ZXInKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1tZW51LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LXBhZ2luYXRvciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICB9XG5cbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsICdpY29uJyk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1maXJzdCxcbiAgLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgfVxuXG4gIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIHtcbiAgICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gICAgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50LFxuICAgIC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuICAgIC5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICAgICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsICdkaXNhYmxlZCcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgIGZpbGw6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQge1xuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgICAgZmlsbDogbWF0LWNvbG9yKCRhY2NlbnQsIGxpZ2h0ZXIpO1xuICAgIH1cblxuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIHtcbiAgICAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgICAgIGZpbGw6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdHlwb2dyYXBoeSgkY29uZmlnKSB7IH1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1wcm9ncmVzcy1zcGlubmVyLCAubWF0LXNwaW5uZXIge1xuICAgIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cbkBtaXhpbiBfbWF0LXJhZGlvLWNvbG9yKCRwYWxldHRlKSB7XG4gICYubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgfVxuXG4gIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSxcbiAgJi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLFxuICAmOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1yYWRpby1idXR0b24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC1yYWRpby1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcmFkaW8tY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXJhZGlvLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIG5lZWRzIGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHRoZSBjbGFzc2VzIGFib3ZlIGFyZSBjb21iaW5lZFxuICAgIC8vIChlLmcuIGAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50YCkgd2hpY2ggaW5jcmVhc2VzIHRoZWlyIHNwZWNpZmljaXR5IGEgbG90LlxuICAgIC8vIFRPRE86IGNvbnNpZGVyIG1ha2luZyB0aGUgc2VsZWN0b3JzIGludG8gZGVzY2VuZGFudHMgKGAubWF0LXByaW1hcnkgLm1hdC1yYWRpby1idXR0b25gKS5cbiAgICAmLm1hdC1yYWRpby1kaXNhYmxlZCB7XG4gICAgICAmLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuICAgICAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgICAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuXG4gICAgICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50LFxuICAgICAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gICAgLy8gdG8gY29udHJvbCBob3cgb3BhcXVlIHRoZSByaXBwbGUgc2hvdWxkIGJlLlxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1zZWxlY3QtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogX21hdC1jb250cm9sLXBsYWNlaG9sZGVyLWNvbG9yKCR0aGVtZSk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtcGFuZWwge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcblxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIsIDAuMTIpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgJi5tYXQtZm9jdXNlZCB7XG4gICAgICAmLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWludmFsaWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zZWxlY3QtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcblxuICAubWF0LXNlbGVjdCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIGhlaWdodDogJGxpbmUtaGVpZ2h0ICogMWVtO1xuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXNpZGVuYXYtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOiAgbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcbiAgJGRyYXdlci1wdXNoLWJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlhbG9nKTtcbiAgJGRyYXdlci1zaWRlLWJvcmRlcjogc29saWQgMXB4IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1kcmF3ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWRyYXdlci1wdXNoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItcHVzaC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgICAgIC8vIFRoZSBlbGV2YXRpb24gb2Ygei0xNiBpcyBub3RlZCBpbiB0aGUgZGVzaWduIHNwZWNpZmljYXRpb25zLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1kcmF3ZXIuaHRtbFxuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMTYsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kcmF3ZXItc2lkZSB7XG4gICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuXG4gICAgJi5tYXQtZHJhd2VyLWVuZCB7XG4gICAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICB9XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG5cbiAgICAmLm1hdC1kcmF3ZXItZW5kIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZHJhd2VyLWJhY2tkcm9wLm1hdC1kcmF3ZXItc2hvd24ge1xuICAgICRvcGFjaXR5OiAwLjY7XG4gICAgJGJhY2tkcm9wLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQsICRvcGFjaXR5KTtcblxuICAgIEBpZiAodHlwZS1vZigkYmFja2Ryb3AtY29sb3IpID09IGNvbG9yKSB7XG4gICAgICAvLyBXZSB1c2UgaW52ZXJ0KCkgaGVyZSB0byBoYXZlIHRoZSBkYXJrZW4gdGhlIGJhY2tncm91bmQgY29sb3IgZXhwZWN0ZWQgdG8gYmUgdXNlZC4gSWYgdGhlXG4gICAgICAvLyBiYWNrZ3JvdW5kIGlzIGxpZ2h0LCB3ZSB1c2UgYSBkYXJrIGJhY2tkcm9wLiBJZiB0aGUgYmFja2dyb3VuZCBpcyBkYXJrLFxuICAgICAgLy8gd2UgdXNlIGEgbGlnaHQgYmFja2Ryb3AuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbnZlcnQoJGJhY2tkcm9wLWNvbG9yKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gSWYgd2UgY291bGRuJ3QgcmVzb2x2ZSB0aGUgYmFja2Ryb3AgY29sb3IgdG8gYSBjb2xvciB2YWx1ZSwgZmFsbCBiYWNrIHRvIHVzaW5nXG4gICAgICAvLyBgb3BhY2l0eWAgdG8gbWFrZSBpdCBvcGFxdWUgc2luY2UgaXRzIGVuZCB2YWx1ZSBjb3VsZCBiZSBhIHNvbGlkIGNvbG9yLlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tkcm9wLWNvbG9yO1xuICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc2lkZW5hdi10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSkge1xuICAmLm1hdC1jaGVja2VkIHtcbiAgICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgIC8vIE9wYWNpdHkgaXMgZGV0ZXJtaW5lZCBmcm9tIHRoZSBzcGVjcyBmb3IgdGhlIHNlbGVjdGlvbiBjb250cm9scy5cbiAgICAgIC8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29tcG9uZW50cy9zZWxlY3Rpb24tY29udHJvbHMuaHRtbCNzcGVjc1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUsIDAuNTQpO1xuICAgIH1cblxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgLy8gU2V0IG5vIG9wYWNpdHkgZm9yIHRoZSByaXBwbGVzIGJlY2F1c2UgdGhlIHJpcHBsZSBvcGFjaXR5IHdpbGwgYmUgYWRqdXN0ZWQgZHluYW1pY2FsbHlcbiAgICAgIC8vIGJhc2VkIG9uIHRoZSB0eXBlIG9mIGludGVyYWN0aW9uIHdpdGggdGhlIHNsaWRlLXRvZ2dsZSAoZS5nLiBmb3IgaG92ZXIsIGZvY3VzKVxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlLXRvZ2dsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcms6IG1hcF9nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLy8gQ29sb3IgaHVlcyBhcmUgYmFzZWQgb24gdGhlIHNwZWNzIHdoaWNoIGJyaWVmbHkgc2hvdyB0aGUgaHVlcyB0aGF0IGFyZSBhcHBsaWVkIHRvIGEgc3dpdGNoLlxuICAvLyBUaGUgMjAxOCBzcGVjcyBubyBsb25nZXIgZGVzY3JpYmUgaG93IGRhcmsgc3dpdGNoZXMgc2hvdWxkIGxvb2sgbGlrZS4gRHVlIHRvIHRoZSBsYWNrIG9mXG4gIC8vIGluZm9ybWF0aW9uIGZvciBkYXJrIHRoZW1lZCBzd2l0Y2hlcywgd2UgcGFydGlhbGx5IGtlZXAgdGhlIG9sZCBiZWhhdmlvciB0aGF0IGlzIGJhc2VkIG9uXG4gIC8vIHRoZSBwcmV2aW91cyBzcGVjaWZpY2F0aW9ucy4gRm9yIHRoZSBjaGVja2VkIGNvbG9yIHdlIGFsd2F5cyB1c2UgdGhlIGBkZWZhdWx0YCBodWUgYmVjYXVzZVxuICAvLyB0aGF0IGZvbGxvd3MgTURDIGFuZCBhbHNvIG1ha2VzIGl0IGVhc2llciBmb3IgcGVvcGxlIHRvIGNyZWF0ZSBhIGN1c3RvbSB0aGVtZSB3aXRob3V0IG5lZWRpbmdcbiAgLy8gdG8gc3BlY2lmeSBlYWNoIGh1ZSBpbmRpdmlkdWFsbHkuXG4gICR0aHVtYi11bmNoZWNrZWQtaHVlOiBpZigkaXMtZGFyaywgNDAwLCA1MCk7XG4gICR0aHVtYi1jaGVja2VkLWh1ZTogZGVmYXVsdDtcblxuICAkYmFyLXVuY2hlY2tlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZCk7XG4gICRyaXBwbGUtdW5jaGVja2VkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UpO1xuXG4gIC5tYXQtc2xpZGUtdG9nZ2xlIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCRhY2NlbnQsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG5cbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHByaW1hcnksICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCR3YXJuLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICAvLyBTZXQgbm8gb3BhY2l0eSBmb3IgdGhlIHJpcHBsZXMgYmVjYXVzZSB0aGUgcmlwcGxlIG9wYWNpdHkgd2lsbCBiZSBhZGp1c3RlZCBkeW5hbWljYWxseVxuICAgICAgLy8gYmFzZWQgb24gdGhlIHR5cGUgb2YgaW50ZXJhY3Rpb24gd2l0aCB0aGUgc2xpZGUtdG9nZ2xlIChlLmcuIGZvciBob3ZlciwgZm9jdXMpXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmlwcGxlLXVuY2hlY2tlZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMSwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJG1hdC1ncmV5LCAkdGh1bWItdW5jaGVja2VkLWh1ZSk7XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXItdW5jaGVja2VkLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc2xpZGUtdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHBhbGV0dGUpIHtcbiAgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbiAgLm1hdC1zbGlkZXItdGh1bWIsXG4gIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICRtYXQtc2xpZGVyLW9mZi1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItb2ZmLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW9mZi1hY3RpdmUpO1xuICAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW1pbik7XG4gICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1vZmYpO1xuICAkbWF0LXNsaWRlci1mb2N1cy1yaW5nLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgZGVmYXVsdCwgMC4yKTtcbiAgJG1hdC1zbGlkZXItZm9jdXMtcmluZy1taW4tdmFsdWUtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgMC4xMik7XG4gICRtYXQtc2xpZGVyLXRpY2stY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgMC43KTtcbiAgJG1hdC1zbGlkZXItdGljay1zaXplOiAycHg7XG5cbiAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRhY2NlbnQpO1xuICB9XG5cbiAgLm1hdC13YXJuIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCR3YXJuKTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctY29sb3I7XG4gIH1cblxuICAubWF0LXNsaWRlcjpob3ZlcixcbiAgLmNkay1mb2N1c2VkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLW9mZi1mb2N1c2VkLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWRpc2FibGVkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLFxuICAgIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4gICAgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbGlkZXItbWluLXZhbHVlIHtcbiAgICAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctbWluLXZhbHVlLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIHtcbiAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1sYWJlbGVkLW1pbi12YWx1ZS10aHVtYi1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgJi5jZGstZm9jdXNlZCB7XG4gICAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgICAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItbGFiZWwtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKSB7XG4gICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlcixcbiAgICAgICYuY2RrLWZvY3VzZWQge1xuICAgICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtZm9jdXNlZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci10aWNrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgICAvLyBGaXJlZm94IGRvZXNuJ3QgZHJhdyB0aGUgZ3JhZGllbnQgY29ycmVjdGx5IHdpdGggJ3RvIHJpZ2h0J1xuICAgIC8vIChzZWUgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNDMxOSkuXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDAuMDAwMWRlZywgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1zdGVwLWhlYWRlciB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICB9XG5cbiAgICAvLyBPbiB0b3VjaCBkZXZpY2VzIHRoZSA6aG92ZXIgc3RhdGUgd2lsbCBsaW5nZXIgb24gdGhlIGVsZW1lbnQgYWZ0ZXIgYSB0YXAuXG4gICAgLy8gUmVzZXQgaXQgdmlhIGBAbWVkaWFgIGFmdGVyIHRoZSBkZWNsYXJhdGlvbiwgYmVjYXVzZSB0aGUgbWVkaWEgcXVlcnkgaXNuJ3RcbiAgICAvLyBzdXBwb3J0ZWQgYnkgYWxsIGJyb3dzZXJzIHlldC5cbiAgICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwsXG4gICAgLm1hdC1zdGVwLW9wdGlvbmFsIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxcbiAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5tYXQtc3RlcHBlci12ZXJ0aWNhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgfVxuXG4gIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4gIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsXG4gIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zdGVwcGVyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXN0ZXBwZXItdmVydGljYWwsIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIH07XG4gIH1cblxuICAubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZCB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9O1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc29ydC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgICAkdGFibGUtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICAgICR0ZXh0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgIC8vIEJlY2F1c2UgdGhlIGFycm93IGlzIG1hZGUgdXAgb2YgbXVsdGlwbGUgZWxlbWVudHMgdGhhdCBhcmUgc3RhY2tlZCBvbiB0b3Agb2YgZWFjaCBvdGhlcixcbiAgICAvLyB3ZSBjYW4ndCB1c2UgdGhlIHNlbWktdHJhc3BhcmVudCBjb2xvciBmcm9tIHRoZSB0aGVtZSBkaXJlY3RseS4gSWYgdGhlIHZhbHVlIGlzIGEgY29sb3JcbiAgICAvLyAqdHlwZSosIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZFxuICAgIC8vIHVzaW5nIHRoZSB2YWx1ZSB0byBkZXRlcm1pbmUgdGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhY2tncm91bmQgdG8gcHV0IGludG8gZm9yZWdyb3VuZFxuICAgIC8vIHdoZW4gbWl4aW5nIHRoZSBjb2xvcnMgdG9nZXRoZXIuIE90aGVyd2lzZSwgaWYgaXQgcmVzb2x2ZXMgdG8gc29tZXRoaW5nIGRpZmZlcmVudFxuICAgIC8vIChlLmcuIGl0IHJlc29sdmVzIHRvIGEgQ1NTIHZhcmlhYmxlKSwgd2UgdXNlIHRoZSBjb2xvciBkaXJlY3RseS5cbiAgICBAaWYgKHR5cGUtb2YoJHRhYmxlLWJhY2tncm91bmQpID09IGNvbG9yIGFuZCB0eXBlLW9mKCR0ZXh0LWNvbG9yKSA9PSBjb2xvcikge1xuICAgICAgJHRleHQtb3BhY2l0eTogb3BhY2l0eSgkdGV4dC1jb2xvcik7XG4gICAgICBjb2xvcjogbWl4KCR0YWJsZS1iYWNrZ3JvdW5kLCByZ2JhKCR0ZXh0LWNvbG9yLCAxKSwgKDEgLSAkdGV4dC1vcGFjaXR5KSAqIDEwMCUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdGFicy10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRoZWFkZXItYm9yZGVyOiAxcHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcblxuICAubWF0LXRhYi1uYXYtYmFyLFxuICAubWF0LXRhYi1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWFkZXItYm9yZGVyO1xuICB9XG5cbiAgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIHtcbiAgICAubWF0LXRhYi1uYXYtYmFyLFxuICAgIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgICBib3JkZXItdG9wOiAkaGVhZGVyLWJvcmRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtdGFiLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC8vIFJlbW92ZSBoZWFkZXIgYm9yZGVyIHdoZW4gdGhlcmUgaXMgYSBiYWNrZ3JvdW5kIGNvbG9yXG4gIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10gLm1hdC10YWItaGVhZGVyLFxuICAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgfVxuXG4gIC5tYXQtdGFiLWdyb3VwLCAubWF0LXRhYi1uYXYtYmFyIHtcbiAgICAkdGhlbWUtY29sb3JzOiAoXG4gICAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICAgIGFjY2VudDogJGFjY2VudCxcbiAgICAgIHdhcm46ICR3YXJuXG4gICAgKTtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJHRoZW1lLWNvbG9ycyB7XG4gICAgICAvLyBTZXQgdGhlIGZvcmVncm91bmQgY29sb3Igb2YgdGhlIHRhYnNcbiAgICAgICYubWF0LSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvcik7XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgaW5rIGJhciB3aGVuIGJhY2tncm91bmQgY29sb3IgaXMgdGhlIHNhbWVcbiAgICAgICAgJi5tYXQtYmFja2dyb3VuZC0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvciwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICR0aGVtZS1jb2xvcnMge1xuICAgICAgLy8gU2V0IGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRhYnMgYW5kIG92ZXJyaWRlIGZvY3VzIGNvbG9yXG4gICAgICAmLm1hdC1iYWNrZ3JvdW5kLSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWJzLWJhY2tncm91bmQoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtaW5rLWJhcigkY29sb3IsICRodWU6IGRlZmF1bHQpIHtcbiAgLm1hdC1pbmstYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGNvbG9yLCAkaHVlKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10YWItbGFiZWwtZm9jdXMoJHRhYi1mb2N1cy1jb2xvcikge1xuICAubWF0LXRhYi1sYWJlbCxcbiAgLm1hdC10YWItbGluayB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQge1xuICAgICAgJjpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR0YWItZm9jdXMtY29sb3IsIGxpZ2h0ZXIsIDAuMyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRhYnMtYmFja2dyb3VuZCgkYmFja2dyb3VuZC1jb2xvcikge1xuICAvLyBTZXQgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRhYiBncm91cFxuICAubWF0LXRhYi1oZWFkZXIsIC5tYXQtdGFiLWxpbmtzLCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgfVxuXG4gIC8vIFNldCBsYWJlbHMgdG8gY29udHJhc3QgYWdhaW5zdCBiYWNrZ3JvdW5kXG4gIC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1saW5rIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0KTtcblxuICAgICYubWF0LXRhYi1kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBwYWdpbmF0aW9uIGNoZXZyb25zIHRvIGNvbnRyYXN0IGJhY2tncm91bmRcbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QsIDAuNCk7XG4gIH1cblxuICAvLyBTZXQgcmlwcGxlcyBjb2xvciB0byBiZSB0aGUgY29udHJhc3QgY29sb3Igb2YgdGhlIG5ldyBiYWNrZ3JvdW5kLiBPdGhlcndpc2UgdGhlIHJpcHBsZVxuICAvLyBjb2xvciB3aWxsIGJlIGJhc2VkIG9uIHRoZSBhcHAgYmFja2dyb3VuZCBjb2xvci5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjEyKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYnMtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdGFiLWdyb3VwIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJ1dHRvbik7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtdG9vbGJhci1jb2xvcigkcGFsZXR0ZSkge1xuICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICBjb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbn1cblxuQG1peGluIF9tYXQtdG9vbGJhci1mb3JtLWZpZWxkLW92ZXJyaWRlcyB7XG4gIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUsXG4gIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtc2VsZWN0LXZhbHVlLFxuICAubWF0LXNlbGVjdC1hcnJvdyxcbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdG9vbGJhciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBhcHAtYmFyKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItZm9ybS1maWVsZC1vdmVycmlkZXM7XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sYmFyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRvb2xiYXIsXG4gIC5tYXQtdG9vbGJhciBoMSxcbiAgLm1hdC10b29sYmFyIGgyLFxuICAubWF0LXRvb2xiYXIgaDMsXG4gIC5tYXQtdG9vbGJhciBoNCxcbiAgLm1hdC10b29sYmFyIGg1LFxuICAubWF0LXRvb2xiYXIgaDYge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCB0aXRsZSk7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cblxuXG5cblxuJG1hdC10b29sdGlwLXRhcmdldC1oZWlnaHQ6IDIycHg7XG4kbWF0LXRvb2x0aXAtZm9udC1zaXplOiAxMHB4O1xuJG1hdC10b29sdGlwLXZlcnRpY2FsLXBhZGRpbmc6ICgkbWF0LXRvb2x0aXAtdGFyZ2V0LWhlaWdodCAtICRtYXQtdG9vbHRpcC1mb250LXNpemUpIC8gMjtcblxuJG1hdC10b29sdGlwLWhhbmRzZXQtdGFyZ2V0LWhlaWdodDogMzBweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTogMTRweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LXZlcnRpY2FsLXBhZGRpbmc6XG4gICAgKCRtYXQtdG9vbHRpcC1oYW5kc2V0LXRhcmdldC1oZWlnaHQgLSAkbWF0LXRvb2x0aXAtaGFuZHNldC1mb250LXNpemUpIC8gMjtcblxuQG1peGluIG1hdC10b29sdGlwLXRoZW1lKCR0aGVtZSkge1xuICAubWF0LXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkbWF0LWdyZXksIDcwMCwgMC45KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2x0aXAtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdG9vbHRpcCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1mb250LXNpemU7XG4gICAgcGFkZGluZy10b3A6ICRtYXQtdG9vbHRpcC12ZXJ0aWNhbC1wYWRkaW5nO1xuICAgIHBhZGRpbmctYm90dG9tOiAkbWF0LXRvb2x0aXAtdmVydGljYWwtcGFkZGluZztcbiAgfVxuXG4gIC5tYXQtdG9vbHRpcC1oYW5kc2V0IHtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nLXRvcDogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXRoZW1lKCR0aGVtZSkge1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcblxuICAubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xuICAgIC8vIFVzZSB0aGUgcHJpbWFyeSB0ZXh0IG9uIHRoZSBkYXJrIHRoZW1lLCBldmVuIHRob3VnaCB0aGUgbGlnaHRlciBvbmUgdXNlc1xuICAgIC8vIGEgc2Vjb25kYXJ5LCBiZWNhdXNlIHRoZSBjb250cmFzdCBvbiB0aGUgbGlnaHQgcHJpbWFyeSB0ZXh0IGlzIHBvb3IuXG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkZGFyay1wcmltYXJ5LXRleHQsICRsaWdodC1zZWNvbmRhcnktdGV4dCk7XG4gICAgYmFja2dyb3VuZDogaWYoJGlzLWRhcmstdGhlbWUsIG1hcC1nZXQoJG1hdC1ncmV5LCA1MCksICMzMjMyMzIpO1xuXG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oNiwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCBpbmhlcml0LCBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCkpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXNpbXBsZS1zbmFja2JhciB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cblxuICAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogaW5oZXJpdDtcbiAgICAgIHNpemU6IGluaGVyaXQ7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIGZpbGwgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG5cbiAgJGZpbGwtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCBpZigkaXMtZGFyay10aGVtZSwgMC4xLCAwLjA0KSk7XG4gICRmaWxsLWRpc2FibGVkLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgaWYoJGlzLWRhcmstdGhlbWUsIDAuMDUsIDAuMDIpKTtcbiAgJHVuZGVybGluZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC41LCAwLjQyKSk7XG4gICRsYWJlbC1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIHtcbiAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmlsbC1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpbGwtZGlzYWJsZWQtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlKVxuICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgd2lkdGg6IDEwMCUgLyAkZm9udC1zY2FsZSArICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsIGFuZCBzdWJzY3JpcHQuXG4gICRzdWJzY3JpcHQtZm9udC1zY2FsZTogMC43NTtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdG9wIG9mIHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctdG9wOiAwLjI1ZW07XG4gIC8vIFRoZSBwYWRkaW5nIGJlbG93IHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctYm90dG9tOiAwLjc1ZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBmaWxsIGFwcGVhcmFuY2UuXG4gICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC41ZW07XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nLXRvcCAwICRpbmZpeC1wYWRkaW5nLWJvdHRvbSAwO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmctdG9wO1xuICAgICAgbWFyZ2luLXRvcDogJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQ7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtZmlsbC1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLXRvcCArICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmctdG9wICsgJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBsZWdhY3kgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtaGludCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgQGluY2x1ZGUgbWF0LWNvbnRyb2wtZGlzYWJsZWQtdW5kZXJsaW5lKCR1bmRlcmxpbmUtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZygkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFdlIHVzZSBwZXJzcGVjdGl2ZSB0byBmaXggdGhlIHRleHQgYmx1cnJpbmVzcyBhcyBkZXNjcmliZWQgaGVyZTpcbiAgLy8gaHR0cDovL3d3dy51c2VyYWdlbnRtYW4uY29tL2Jsb2cvMjAxNC8wNS8wNC9maXhpbmctdHlwb2dyYXBoeS1pbnNpZGUtb2YtMi1kLWNzcy10cmFuc2Zvcm1zL1xuICAvLyBUaGlzIHJlc3VsdHMgaW4gYSBzbWFsbCBqaXR0ZXIgYWZ0ZXIgdGhlIGxhYmVsIGZsb2F0cyBvbiBGaXJlZm94LCB3aGljaCB0aGVcbiAgLy8gdHJhbnNsYXRlWiBmaXhlcy5cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nKSBzY2FsZSgkZm9udC1zY2FsZSkgcGVyc3BlY3RpdmUoMTAwcHgpXG4gIHRyYW5zbGF0ZVooMC4wMDFweCArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZyArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKVxuICAgICAgICAgICAgICAgICAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuXG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbi8vIFNhbWUgYXMgbWl4aW4gYWJvdmUsIGJ1dCBvbWl0cyB0aGUgdHJhbnNsYXRlWiBmb3IgcHJpbnRpbmcgcHVycG9zZXMuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludCgkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFRoaXMgcmVzdWx0cyBpbiBhIHNtYWxsIGppdHRlciBhZnRlciB0aGUgbGFiZWwgZmxvYXRzIG9uIEZpcmVmb3gsIHdoaWNoIHRoZVxuICAvLyB0cmFuc2xhdGVaIGZpeGVzLlxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSlcbiAgICAgICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZSwgYnV0IHNlZW0gdG8gbWVhc3VyZSBmcm9tIHRoZSBlZGdlXG4gIC8vIG9mIHRoZSB0ZXh0IGl0c2VsZiwgbm90IHRoZSBlZGdlIG9mIHRoZSBsaW5lOyB0aGVyZWZvcmUgd2Ugc3VidHJhY3Qgb2ZmIHRoZSBsaW5lIHNwYWNpbmcuXG4gICRpbmZpeC1wYWRkaW5nOiAwLjVlbSAtICRsaW5lLXNwYWNpbmc7XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLiBXZSBhZ2FpbiBuZWVkIHRvIHN1YnRyYWN0IG9mZiB0aGUgbGluZSBzcGFjaW5nIHNpbmNlIHRoZSBtb2NrcyBtZWFzdXJlIHRvIHRoZSBlZGdlIG9mIHRoZVxuICAvLyB0ZXh0LCBub3QgdGhlICBlZGdlIG9mIHRoZSBsaW5lLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlIC0gKCRsaW5lLXNwYWNpbmcgKiAyKTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgcGFkZGluZy1ib3R0b206ICR3cmFwcGVyLXBhZGRpbmctYm90dG9tO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgICAvLyBzbyB3ZSBtb3ZlIGl0IHVwIGJ5IHRoZSBwYWRkaW5nIGFtb3VudC5cbiAgICAgIGJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgICAgIG1hcmdpbi10b3A6ICRzdWJzY3JpcHQtbWFyZ2luLXRvcDtcblxuICAgICAgLy8gV2Ugd2FudCB0aGUgc3Vic2NyaXB0IHRvIHN0YXJ0IGF0IHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQgYm94LCBub3QgdGhlIHBhZGRpbmcgYm94LFxuICAgICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgICAgdG9wOiBjYWxjKDEwMCUgLSAjeyR3cmFwcGVyLXBhZGRpbmctYm90dG9tIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gdHJhbnNsYXRlWiBjYXVzZXMgdGhlIGxhYmVsIHRvIG5vdCBhcHBlYXIgd2hpbGUgcHJpbnRpbmcsIHNvIHdlIG92ZXJyaWRlIGl0IHRvIG5vdFxuICAvLyBhcHBseSB0cmFuc2xhdGVaIHdoaWxlIHByaW50aW5nXG4gIEBtZWRpYSBwcmludCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nLXByaW50KFxuICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtZGlzYWJsZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICRvdXRsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjMsIDAuMTIpKTtcbiAgJG91dGxpbmUtY29sb3ItaG92ZXI6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJG91dGxpbmUtY29sb3ItcHJpbWFyeTogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgJG91dGxpbmUtY29sb3ItYWNjZW50OiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICRvdXRsaW5lLWNvbG9yLXdhcm46IG1hdC1jb2xvcigkd2Fybik7XG4gICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjE1LCAwLjA2KSk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1ob3ZlcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb2N1c2VkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLXByaW1hcnk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1hY2NlbnQ7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGFzcyByZXBlYXRlZCBzbyB0aGF0IHJ1bGUgaXMgc3BlY2lmaWMgZW5vdWdoIHRvIG92ZXJyaWRlIGZvY3VzZWQgYWNjZW50IGNvbG9yIGNhc2UuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlKVxuICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBwYWRkaW5nIGFib3ZlIGFuZCBiZWxvdyB0aGUgaW5maXguXG4gICRpbmZpeC1wYWRkaW5nOiAxZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgcGFkZGluZyBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLXdyYXBwZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHN1YnNjcmlwdCwgc2luY2UgaXQnc1xuICAvLyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgc3Vic2NyaXB0J3MgbWFyZ2luIGFuZCBsaW5lLWhlaWdodCwgYnV0IHdlXG4gIC8vIG5lZWQgdG8gbXVsdGlwbHkgYnkgdGhlIHN1YnNjcmlwdCBmb250IHNjYWxlIGZhY3RvciBzaW5jZSB0aGUgd3JhcHBlciBoYXMgYSBsYXJnZXIgZm9udCBzaXplLlxuICAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTogKCRzdWJzY3JpcHQtbWFyZ2luLXRvcCArICRsaW5lLWhlaWdodCkgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2UuXG4gICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC4yNWVtO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUge1xuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZztcbiAgICAgIG1hcmdpbi10b3A6ICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0O1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLW91dGxpbmUtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZyArICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcgKyAkb3V0bGluZS1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIHN0YW5kYXJkIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBAaW5jbHVkZSBtYXQtY29udHJvbC1kaXNhYmxlZC11bmRlcmxpbmUoJHVuZGVybGluZS1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10eXBvZ3JhcGh5KCRjb25maWcpIHt9XG5cblxuLy8gVGhlbWUgc3R5bGVzIHRoYXQgYXBwbHkgdG8gYWxsIGFwcGVhcmFuY2VzIG9mIHRoZSBmb3JtLWZpZWxkLlxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAvLyBMYWJlbCBjb2xvcnMuIFJlcXVpcmVkIGlzIHVzZWQgZm9yIHRoZSBgKmAgc3RhciBzaG93biBpbiB0aGUgbGFiZWwuXG4gICRsYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNywgMC42KSk7XG4gICRmb2N1c2VkLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuICAkcmVxdWlyZWQtbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcblxuICAvLyBVbmRlcmxpbmUgY29sb3JzLlxuICAkdW5kZXJsaW5lLWNvbG9yLWJhc2U6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJHVuZGVybGluZS1jb2xvci1hY2NlbnQ6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgJHVuZGVybGluZS1jb2xvci13YXJuOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1oaW50IHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgY29sb3I6ICRmb2N1c2VkLWxhYmVsLWNvbG9yO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICAgIGNvbG9yOiAkcmVxdWlyZWQtbGFiZWwtY29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWJhc2U7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1mb2N1c2VkLWNvbG9yO1xuXG4gICAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtd2FybiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIHtcbiAgICAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3ItYWNjZW50O1xuICAgIH1cblxuICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxpbmcgZm9yIHRoZSBlcnJvciBzdGF0ZSBvZiB0aGUgZm9ybSBmaWVsZC4gTm90ZSB0aGF0IHdoaWxlIHRoZSBzYW1lIGNhbiBiZVxuICAvLyBhY2hpZXZlZCB3aXRoIHRoZSBuZy0qIGNsYXNzZXMsIHdlIHVzZSB0aGlzIGFwcHJvYWNoIGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHRoZSBzYW1lXG4gIC8vIGxvZ2ljIGlzIHVzZWQgdG8gc3R5bGUgdGhlIGVycm9yIHN0YXRlIGFuZCB0byBzaG93IHRoZSBlcnJvciBtZXNzYWdlcy5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuXG4gICAgICAmLm1hdC1hY2NlbnQsXG4gICAgICAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1lcnJvciB7XG4gICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1maWxsLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhlbWUoJHRoZW1lKTtcbn1cblxuLy8gVXNlZCB0byBtYWtlIGluc3RhbmNlcyBvZiB0aGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nIG1peGluIG5lZ2xpZ2libHkgZGlmZmVyZW50LFxuLy8gYW5kIHByZXZlbnQgR29vZ2xlJ3MgQ1NTIE9wdGltaXplciBmcm9tIGNvbGxhcHNpbmcgdGhlIGRlY2xhcmF0aW9ucy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBzb21lXG4vLyBvZiB0aGUgc2VsZWN0b3JzIGNvbnRhaW4gcHNldWRvLWNsYXNzZXMgbm90IHJlY29nbml6ZWQgaW4gYWxsIGJyb3dzZXJzLiBJZiBhIGJyb3dzZXIgZW5jb3VudGVyc1xuLy8gYW4gdW5rbm93biBwc2V1ZG8tY2xhc3MgaXQgd2lsbCBkaXNjYXJkIHRoZSBlbnRpcmUgcnVsZSBzZXQuXG4kbWF0LWZvcm0tZmllbGQtZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWRlZHVwZSlcbiAgICAgICAgICAgICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBwcmVmaXggYW5kIHN1ZmZpeCBpY29ucy5cbiAgJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlOiAxLjU7XG5cbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZS5cbiAgJGluZml4LXBhZGRpbmc6IDAuNWVtO1xuICAvLyBUaGUgbWFyZ2luIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtaW5maXggdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsLlxuICAkaW5maXgtbWFyZ2luLXRvcDogMWVtICogJGxpbmUtaGVpZ2h0ICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBGb250IHNpemUgdG8gdXNlIGZvciB0aGUgbGFiZWwgYW5kIHN1YnNjcmlwdCB0ZXh0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2l6ZTogJHN1YnNjcmlwdC1mb250LXNjYWxlICogMTAwJTtcbiAgLy8gRm9udCBzaXplIHRvIHVzZSBmb3IgdGhlIGZvciB0aGUgcHJlZml4IGFuZCBzdWZmaXggaWNvbnMuXG4gICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxMDAlO1xuICAvLyBUaGUgc3BhY2UgYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSAubWF0LWZvcm0tZmllbGQtZmxleCBhcmVhIGFuZCB0aGUgc3Vic2NyaXB0IHdyYXBwZXIuXG4gIC8vIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLCBidXQgdGhpcyBtYXJnaW4gaXMgYXBwbGllZCB0byBhbiBlbGVtZW50IHdpdGggdGhlIHN1YnNjcmlwdFxuICAvLyB0ZXh0IGZvbnQgc2l6ZSwgc28gd2UgbmVlZCB0byBkaXZpZGUgYnkgdGhlIHNjYWxlIGZhY3RvciB0byBtYWtlIGl0IGhhbGYgb2YgdGhlIG9yaWdpbmFsIHRleHRcbiAgLy8gc2l6ZS5cbiAgJHN1YnNjcmlwdC1tYXJnaW4tdG9wOiAwLjVlbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGlucHV0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcHJlZml4LFxuICAubWF0LWZvcm0tZmllbGQtc3VmZml4IHtcbiAgICAvLyBBbGxvdyBpY29ucyBpbiBhIHByZWZpeCBvciBzdWZmaXggdG8gYWRhcHQgdG8gdGhlIGNvcnJlY3Qgc2l6ZS5cbiAgICAubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgfVxuXG4gICAgLy8gQWxsb3cgaWNvbiBidXR0b25zIGluIGEgcHJlZml4IG9yIHN1ZmZpeCB0byBhZGFwdCB0byB0aGUgY29ycmVjdCBzaXplLlxuICAgIC5tYXQtaWNvbi1idXR0b24ge1xuICAgICAgaGVpZ2h0OiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxZW07XG4gICAgICB3aWR0aDogJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlICogMWVtO1xuXG4gICAgICAubWF0LWljb24ge1xuICAgICAgICBoZWlnaHQ6ICRsaW5lLWhlaWdodCAqIDFlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgLy8gVGhyb3dzIG9mZiB0aGUgYmFzZWxpbmUgaWYgd2UgZG8gaXQgYXMgYSByZWFsIG1hcmdpbiwgc28gd2UgZG8gaXQgYXMgYSBib3JkZXIgaW5zdGVhZC5cbiAgICBib3JkZXItdG9wOiAkaW5maXgtbWFyZ2luLXRvcCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG5cbiAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAtJGluZml4LW1hcmdpbi10b3A7XG4gICAgcGFkZGluZy10b3A6ICRpbmZpeC1tYXJnaW4tdG9wO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQuXG4gICAgYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAkc3Vic2NyaXB0LWZvbnQtc2l6ZTtcbiAgICBtYXJnaW4tdG9wOiAkc3Vic2NyaXB0LW1hcmdpbi10b3A7XG5cbiAgICAvLyBXZSB3YW50IHRoZSBzdWJzY3JpcHQgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgIHRvcDogY2FsYygxMDAlIC0gI3skd3JhcHBlci1wYWRkaW5nLWJvdHRvbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZX0pO1xuICB9XG5cbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS10eXBvZ3JhcGh5KCRjb25maWcpO1xufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdHJlZS10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXRyZWUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdHJlZS1ub2RlLFxuICAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdHJlZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC10cmVlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10cmVlLW5vZGUsXG4gIC5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlcyBhbGwgb2YgdGhlIHR5cG9ncmFwaGljIHN0eWxlcy5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXR5cG9ncmFwaHkoJGNvbmZpZzogbnVsbCkge1xuICBAaWYgJGNvbmZpZyA9PSBudWxsIHtcbiAgICAkY29uZmlnOiBtYXQtdHlwb2dyYXBoeS1jb25maWcoKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYmFzZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1ib3R0b20tc2hlZXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2FyZC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2hlY2tib3gtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10YWJsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGF0ZXBpY2tlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGlhbG9nLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1leHBhbnNpb24tcGFuZWwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaWNvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaW5wdXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LW1lbnUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3MtYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1zcGlubmVyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yYWRpby10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc2VsZWN0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zaWRlbmF2LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZS10b2dnbGUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc3RlcHBlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdGFicy10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbGJhci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbHRpcC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtb3B0aW9uLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1vcHRncm91cC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10cmVlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG59XG5cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBhcmUgbm90IHRoZW1lLWRlcGVuZGVudC5cbkBtaXhpbiBtYXQtY29yZSgkdHlwb2dyYXBoeS1jb25maWc6IG51bGwpIHtcbiAgQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5LWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yaXBwbGUoKTtcbiAgQGluY2x1ZGUgY2RrLWExMXkoKTtcbiAgQGluY2x1ZGUgY2RrLW92ZXJsYXkoKTtcbiAgQGluY2x1ZGUgY2RrLXRleHQtZmllbGQoKTtcbn1cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBkZXBlbmQgb24gdGhlIHRoZW1lLlxuQG1peGluIG1hdC1jb3JlLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtcmlwcGxlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1vcHRpb24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LW9wdGdyb3VwLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wc2V1ZG8tY2hlY2tib3gtdGhlbWUoJHRoZW1lKTtcblxuICAvLyBQcm92aWRlcyBleHRlcm5hbCBDU1MgY2xhc3NlcyBmb3IgZWFjaCBlbGV2YXRpb24gdmFsdWUuIEVhY2ggQ1NTIGNsYXNzIGlzIGZvcm1hdHRlZCBhc1xuICAvLyBgbWF0LWVsZXZhdGlvbi16JHpWYWx1ZWAgd2hlcmUgYCR6VmFsdWVgIGNvcnJlc3BvbmRzIHRvIHRoZSB6LXNwYWNlIHRvIHdoaWNoIHRoZSBlbGVtZW50IGlzXG4gIC8vIGVsZXZhdGVkLlxuICBAZm9yICR6VmFsdWUgZnJvbSAwIHRocm91Z2ggMjQge1xuICAgIC4jeyRfbWF0LWVsZXZhdGlvbi1wcmVmaXh9I3skelZhbHVlfSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigkelZhbHVlLCAkdGhlbWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdyYXBwZXIgZWxlbWVudCB0aGF0IHByb3ZpZGVzIHRoZSB0aGVtZSBiYWNrZ3JvdW5kIHdoZW4gdGhlIHVzZXIncyBjb250ZW50IGlzbid0XG4gIC8vIGluc2lkZSBvZiBhIGBtYXQtc2lkZW5hdi1jb250YWluZXJgLiBOb3RlIHRoYXQgd2UgbmVlZCB0byBleGNsdWRlIHRoZSBhbXBlcnNhbmRcbiAgLy8gc2VsZWN0b3IgaW4gY2FzZSB0aGUgbWl4aW4gaXMgaW5jbHVkZWQgYXQgdGhlIHRvcCBsZXZlbC5cbiAgLm1hdC1hcHAtYmFja2dyb3VuZCN7aWYoJiwgJywgJi5tYXQtYXBwLWJhY2tncm91bmQnLCAnJyl9IHtcbiAgICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAgICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLy8gTWFya2VyIHRoYXQgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgdXNlciBoYXMgYWRkZWQgYSB0aGVtZSB0byB0aGVpciBwYWdlLlxuICBAYXQtcm9vdCB7XG4gICAgLm1hdC10aGVtZS1sb2FkZWQtbWFya2VyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWRpdmlkZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWRpdmlkZXItdmVydGljYWwge1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vLyBDcmVhdGUgYSB0aGVtZS5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtY29yZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1idXR0b24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWNhcmQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWNoZWNrYm94LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtdGFibGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWRpYWxvZy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWljb24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWlucHV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1saXN0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1tZW51LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wYWdpbmF0b3ItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLWJhci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNlbGVjdC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2lkZW5hdi10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNvcnQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRhYnMtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRyZWUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci10aGVtZSgkdGhlbWUpO1xufVxuIiwiQGltcG9ydCBcIi4uLy4uLy4uL3ZhcmlhYmxlcy5zY3NzXCI7XHJcbiRiY2JzbGEtcHJpbWFyeS1jb2xvcjogbWF0LWNvbG9yKCRiY2JzbGEtcHJpbWFyeSk7XHJcbiR2YW50YWdlLXByaW1hcnktY29sb3I6IG1hdC1jb2xvcigkdmFudGFnZS1wcmltYXJ5KTtcclxuXHJcbi5zcGlubmVyLWNvbnRhaW5lciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHotaW5kZXg6IDg1NDtcclxuICAvKiBoZWlnaHQ6IDJlbTsgKi9cclxuICAvKiB3aWR0aDogMmVtOyAqL1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gIG1hcmdpbjogYXV0bztcclxuICBsZWZ0OiBjYWxjKDUwdncgLSA4MHB4KTtcclxuICB0b3A6IGNhbGMoNTB2aCAtIDgwcHgpO1xyXG59XHJcblxyXG4ubG9nbyB7XHJcbiAgcGFkZGluZy10b3A6IDUwcHg7XHJcbiAgcGFkZGluZy1sZWZ0OiAyNnB4O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBoZWlnaHQ6IGluaGVyaXQ7XHJcbiAgd2lkdGg6IGluaGVyaXQ7XHJcbiAgY29sb3I6ICMwMDUyOWI7XHJcbiAgZm9udC1zaXplOiA1MHB4O1xyXG4gIGFuaW1hdGlvbjogbm9uZTtcclxufVxyXG5cclxuLmxvYWRlci1wcmltYXJ5IHtcclxuICBib3JkZXItd2lkdGg6IDEwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIGJvcmRlci10b3A6IG1lZGl1bTtcclxuICBib3JkZXItcmlnaHQ6IHNvbGlkIHJnYmEoMCwgMCwgMCwgMCk7XHJcbiAgd2lkdGg6IDE1MHB4O1xyXG4gIGhlaWdodDogMTUwcHg7XHJcbiAgYW5pbWF0aW9uOiBzcGluIDAuNXMgbGluZWFyIGluZmluaXRlO1xyXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7XHJcbn1cclxuXHJcbi52YW50YWdlLWxvYWRlci1jb2xvcnMge1xyXG4gIGJvcmRlci1sZWZ0OiBkYXNoZWQgJHZhbnRhZ2UtcHJpbWFyeS1jb2xvcjtcclxuICBib3JkZXItYm90dG9tOiBzb2xpZCAkdmFudGFnZS1wcmltYXJ5LWNvbG9yO1xyXG59XHJcblxyXG4uYmNic2xhLWxvYWRlci1jb2xvcnMge1xyXG4gIGJvcmRlci1sZWZ0OiBkYXNoZWQgJGJjYnNsYS1wcmltYXJ5LWNvbG9yO1xyXG4gIGJvcmRlci1ib3R0b206IHNvbGlkICRiY2JzbGEtcHJpbWFyeS1jb2xvcjtcclxufVxyXG5cclxuQGtleWZyYW1lcyBzcGluIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgfVxyXG5cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcclxuICB9XHJcblxyXG4gIDEwMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcclxuICB9XHJcbn1cclxuIiwiLyogVGhlbWUgZm9yIHRoZSByaXBwbGUgZWxlbWVudHMuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIG1hdGVyaWFsL25vLXByZWZpeGVzICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uc3Bpbm5lci1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDg1NDtcbiAgLyogaGVpZ2h0OiAyZW07ICovXG4gIC8qIHdpZHRoOiAyZW07ICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBtYXJnaW46IGF1dG87XG4gIGxlZnQ6IGNhbGMoNTB2dyAtIDgwcHgpO1xuICB0b3A6IGNhbGMoNTB2aCAtIDgwcHgpO1xufVxuXG4ubG9nbyB7XG4gIHBhZGRpbmctdG9wOiA1MHB4O1xuICBwYWRkaW5nLWxlZnQ6IDI2cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiBpbmhlcml0O1xuICB3aWR0aDogaW5oZXJpdDtcbiAgY29sb3I6ICMwMDUyOWI7XG4gIGZvbnQtc2l6ZTogNTBweDtcbiAgYW5pbWF0aW9uOiBub25lO1xufVxuXG4ubG9hZGVyLXByaW1hcnkge1xuICBib3JkZXItd2lkdGg6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyLXRvcDogbWVkaXVtO1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIHJnYmEoMCwgMCwgMCwgMCk7XG4gIHdpZHRoOiAxNTBweDtcbiAgaGVpZ2h0OiAxNTBweDtcbiAgYW5pbWF0aW9uOiBzcGluIDAuNXMgbGluZWFyIGluZmluaXRlO1xuICBhbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlO1xufVxuXG4udmFudGFnZS1sb2FkZXItY29sb3JzIHtcbiAgYm9yZGVyLWxlZnQ6IGRhc2hlZCAjMTU2NWMwO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAjMTU2NWMwO1xufVxuXG4uYmNic2xhLWxvYWRlci1jb2xvcnMge1xuICBib3JkZXItbGVmdDogZGFzaGVkICMwM2E5ZjQ7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkICMwM2E5ZjQ7XG59XG5cbkBrZXlmcmFtZXMgc3BpbiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn0iXX0= */\"","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport {\r\n VANTAGE_THEME,\r\n BCBSLA_THEME,\r\n VANTAGE,\r\n BCBSLA,\r\n} from \"src/app/CommonModule/constants\";\r\nimport { environment } from \"src/environments/environment\";\r\n\r\n@Component({\r\n selector: \"app-spinner\",\r\n templateUrl: \"./spinner.component.html\",\r\n styleUrls: [\"./spinner.component.scss\"],\r\n})\r\nexport class SpinnerComponent implements OnInit {\r\n spinnerImgUrl: string;\r\n\r\n @Input()\r\n for: string;\r\n\r\n loaderColor: string = \"vantage-loader-colors\";\r\n altText: string = \"Logo\";\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n if (environment.organization === VANTAGE) {\r\n this.loaderColor = \"vantage-loader-colors\";\r\n this.spinnerImgUrl = \"../../../assets/logos/VantageLogo_Blue.svg\";\r\n this.altText = \"Vantage Logo\";\r\n } else if (environment.organization === BCBSLA) {\r\n this.loaderColor = \"bcbsla-loader-colors\";\r\n this.spinnerImgUrl = \"../../../assets/logos/BCBSLALogo_Blue.svg\";\r\n this.altText = \"BCBSLA Logo\";\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[numberOnly]\",\r\n})\r\nexport class NumberOnlyDirective {\r\n // Allow decimal numbers and negative values\r\n private regex: RegExp = new RegExp(/^-?[0-9]+(\\.[0-9]*){0,1}$/g);\r\n // Allow key codes for special events. Reflect :\r\n // Backspace, tab, end, home\r\n private specialKeys: Array = [\"Backspace\", \"Tab\", \"End\", \"Home\", \"-\"];\r\n\r\n constructor(private el: ElementRef) {}\r\n @HostListener(\"keydown\", [\"$event\"])\r\n onKeyDown(event: KeyboardEvent) {\r\n if (\r\n // Allow: Delete, Backspace, Tab, Escape, Enter, etc\r\n this.specialKeys.indexOf(event.key) !== -1 ||\r\n (event.key === \"a\" && event.ctrlKey === true) || // Allow: Ctrl+A\r\n (event.key === \"c\" && event.ctrlKey === true) || // Allow: Ctrl+C\r\n (event.key === \"v\" && event.ctrlKey === true) || // Allow: Ctrl+V\r\n (event.key === \"x\" && event.ctrlKey === true) || // Allow: Ctrl+X\r\n (event.key === \"a\" && event.metaKey === true) || // Cmd+A (Mac)\r\n (event.key === \"c\" && event.metaKey === true) || // Cmd+C (Mac)\r\n (event.key === \"v\" && event.metaKey === true) || // Cmd+V (Mac)\r\n (event.key === \"x\" && event.metaKey === true) // Cmd+X (Mac)\r\n ) {\r\n return; // let it happen, don't do anything\r\n }\r\n let current: string = this.el.nativeElement.value;\r\n let 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","import { Directive, HostListener } from \"@angular/core\";\r\nimport { NgControl } from \"@angular/forms\";\r\n\r\n@Directive({\r\n selector: \"[phoneMask]\"\r\n})\r\nexport class PhoneMasksDirectiveDirective {\r\n constructor(public ngControl: NgControl) {}\r\n // or simplier add dashes US pattern mode\r\n @HostListener(\"input\", [\"$event\"])\r\n onKeyDown(event: KeyboardEvent) {\r\n const input = event.target as HTMLInputElement;\r\n let trimmed = input.value.replace(/\\s+/g, \"\");\r\n\r\n if (trimmed.length > 12) {\r\n trimmed = trimmed.substr(0, 12);\r\n }\r\n\r\n trimmed = trimmed.replace(/-/g, \"\");\r\n\r\n let numbers = [];\r\n numbers.push(trimmed.substr(0, 3));\r\n if (trimmed.substr(3, 3) !== \"\") numbers.push(trimmed.substr(3, 3));\r\n if (trimmed.substr(6, 4) != \"\") numbers.push(trimmed.substr(6, 4));\r\n input.value = numbers.join(\"-\");\r\n }\r\n}\r\n","import { Deserializable } from \"./deserializable.model\";\r\n\r\nexport class Address implements Deserializable {\r\n public customerId: string;\r\n public addressId: string;\r\n public name: string;\r\n public line1: string;\r\n public line2: string;\r\n public city: string;\r\n public state: string;\r\n public zip: string;\r\n public phone: string;\r\n public addressSource: string;\r\n public createDate: string;\r\n\r\n deserialize(input: any): this {\r\n return Object.assign(this, input);\r\n }\r\n}\r\n","import { Deserializable } from \"./deserializable.model\";\r\n\r\nexport class Customer implements Deserializable {\r\n public fullName: string;\r\n public email: string;\r\n public type: CustomerType;\r\n public customerID: string;\r\n public remittanceAccounts: any[];\r\n public program: string\r\n constructor() {\r\n this.type = CustomerType.Member\r\n }\r\n deserialize(input: any): this {\r\n return Object.assign(this, input);\r\n }\r\n}\r\n\r\nexport class NewCustomer extends Customer {\r\n public arAccountID: string;\r\n public memID: string;\r\n public remittanceAccountType: number;\r\n public remittanceAccountValue: string;\r\n}\r\n\r\nexport class NewCustomerWithConfirmationNum extends Customer {\r\n public confirmationNumber: string;\r\n}\r\n\r\nexport enum CustomerType {\r\n Member = 1,\r\n Group = 2,\r\n}\r\n","import { Deserializable } from \"./deserializable.model\";\r\nimport { Customer } from \"./customer.model\";\r\nimport { PaymentMethod } from \"./payment-method.model\";\r\nimport { PaymentTypes } from \"./transaction.model\";\r\n\r\nexport class HixCustomer implements Deserializable {\r\n public customer: Customer;\r\n public paymentMethod: PaymentMethod;\r\n public remittanceAccount: string;\r\n public paymentTotal: number;\r\n public paymentType: PaymentTypes;\r\n public googleRecaptchaResponse: string;\r\n public SSN: string;\r\n public DOB: Date;\r\n public phone: string;\r\n public exchangeId: string;\r\n public confirmationNumber: string;\r\n public remittanceGuid: string;\r\n public fname: string;\r\n public lname: string;\r\n public subscriberId: string;\r\n \r\n deserialize(input: any): this {\r\n return Object.assign(this, input);\r\n }\r\n}\r\n","import { Deserializable } from \"./deserializable.model\";\r\n\r\nexport class HixTransaction implements Deserializable {\r\n public fullName: string;\r\n public customerId: string;\r\n public transactionId: string;\r\n public recurringPaymentId: string;\r\n public applicationConfirmationNumber: string;\r\n\r\n deserialize(input: any): this {\r\n return Object.assign(this, input);\r\n }\r\n}\r\n","import { Deserializable } from \"./deserializable.model\";\r\nimport { Customer } from \"./customer.model\";\r\nimport { PaymentMethod } from \"./payment-method.model\";\r\nimport { PaymentTypes } from \"./transaction.model\";\r\n\r\nexport class OpenPaymentCustomer implements Deserializable {\r\n public customer: Customer;\r\n public paymentMethod: PaymentMethod;\r\n public remittanceAccount: string;\r\n public paymentTotal: number;\r\n public paymentType: PaymentTypes;\r\n public googleRecaptchaResponse: string;\r\n public SSN: string;\r\n public DOB: Date;\r\n public phone: string;\r\n public confirmationNumber: string;\r\n public remittanceGuid: string;\r\n public firstname: string;\r\n public lastname: string;\r\n public email: string;\r\n public mbi: string;\r\n\r\n deserialize(input: any): this {\r\n return Object.assign(this, input);\r\n }\r\n}\r\n","import { Deserializable } from \"./deserializable.model\";\r\nimport { Customer } from \"./customer.model\";\r\nimport { PaymentMethod } from \"./payment-method.model\";\r\nimport { PaymentTypes } from \"./transaction.model\";\r\n\r\nexport class OtpCustomer implements Deserializable {\r\n public customer: Customer;\r\n public paymentMethod: PaymentMethod;\r\n public remittanceAccount: string;\r\n public paymentTotal: number;\r\n public paymentType: PaymentTypes;\r\n public googleRecaptchaResponse: string;\r\n\r\n deserialize(input: any): this {\r\n return Object.assign(this, input);\r\n }\r\n}\r\n","import { Deserializable } from \"./deserializable.model\";\r\n\r\nexport class OtpTransaction implements Deserializable {\r\n public fullName: string;\r\n public customerId: string;\r\n public transactionId: string;\r\n public recurringPaymentId: string;\r\n public applicationConfirmationNumber: string;\r\n\r\n deserialize(input: any): this {\r\n return Object.assign(this, input);\r\n }\r\n}\r\n","import { Deserializable } from \"./deserializable.model\";\r\nimport { Address } from \"./address.model\";\r\n\r\nexport class PaymentMethod implements Deserializable {\r\n public id: number;\r\n public customerId: string;\r\n public paymentMethodId: string;\r\n public type: PaymentMethodType;\r\n public nameOnAccount: string;\r\n public cardNumber: string;\r\n public cardExp: string;\r\n public lastFour: string;\r\n public routingNum: string;\r\n public accountNum: string;\r\n public accountType: AccountType;\r\n public address: Address;\r\n public bankName: String;\r\n\r\n deserialize(input: any): this {\r\n // console.log(input);\r\n\r\n Object.assign(this, input);\r\n this.address = new Address().deserialize(input.address);\r\n return this;\r\n }\r\n}\r\n\r\nexport enum PaymentMethodType {\r\n Credit_Card = 1,\r\n Check = 2,\r\n ACH = 3,\r\n Cash = 5,\r\n}\r\n\r\nexport enum AccountType {\r\n Checking = 1,\r\n Savings = 2,\r\n}\r\n","import { Deserializable } from \"./deserializable.model\";\r\n\r\nexport class Transaction implements Deserializable {\r\n public customerId: string;\r\n public transactionId: string;\r\n public paymentMethodId: string;\r\n public addressId: string;\r\n public paymentType: PaymentTypes;\r\n public paymentTotal: number;\r\n public status: TransactionStatus;\r\n public authCode: string;\r\n public recurringPaymentId: string;\r\n public remittanceAccountId: string;\r\n public remittanceAccountValue: string;\r\n public draftDay: number;\r\n\r\n deserialize(input: any): this {\r\n return Object.assign(this, input);\r\n }\r\n}\r\n\r\nexport enum PaymentTypes {\r\n OneTimePayment = 1,\r\n RecurringPayment = 2,\r\n Refund = 3,\r\n}\r\n\r\nexport enum TransactionStatus {\r\n New = 11,\r\n Authorized = 1,\r\n Captured = 2,\r\n Settled = 3,\r\n Voided = 4,\r\n RefundPending = 5,\r\n Refunded = 6,\r\n PartialRefunded = 7,\r\n Declined = 8,\r\n Error = 9,\r\n HeldForReview = 10,\r\n}\r\n\r\nexport enum TransactionSelectionBox {\r\n Default = 1,\r\n Input = 2,\r\n}\r\n","import { Deserializable } from \"./deserializable.model\";\r\n\r\nexport class ValidCard implements Deserializable {\r\n public niceType: string;\r\n public type: string;\r\n public patterns: number[];\r\n public gaps: number[];\r\n public lengths: number[];\r\n public code: CvvCode;\r\n public matchStrength: number;\r\n deserialize(input: any): this {\r\n Object.assign(this, input);\r\n this.code = new CvvCode().deserialize(input.code);\r\n return this;\r\n }\r\n}\r\n\r\nexport class CvvCode implements Deserializable {\r\n public name: string;\r\n public size: number;\r\n\r\n deserialize(input: any): this {\r\n return Object.assign(this, input);\r\n }\r\n}\r\n\r\nexport class Card implements Deserializable {\r\n public card: ValidCard;\r\n public isPotentiallyValid: boolean;\r\n public isValid: boolean;\r\n\r\n deserialize(input: any): this {\r\n Object.assign(this, input);\r\n this.card = new ValidCard().deserialize(input.card);\r\n return this;\r\n }\r\n}\r\n","export default \"mat-form-field {\\n width: 100%;\\n}\\n\\n.ach-form {\\n padding: 0px 20px;\\n}\\n\\n.address {\\n width: 80%;\\n margin: 10px auto;\\n display: block;\\n}\\n\\n.address mat-radio-button {\\n display: block;\\n /* margin-bottom: 10px; */\\n}\\n\\n.addresssubtitle {\\n color: grey;\\n font-size: small;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvYWRkLWFjaC9DOlxcVXNlcnNcXHZkaGFrYWxcXHNvdXJjZVxccmVwb3NcXHZhbnRhZ2UtcGF5bWVudC1wb3J0YWxcXFZhbnRhZ2VQYXltZW50Q29yZUFuZ3VsYXJcXENsaWVudEFwcC9zcmNcXGFwcFxccGFnZXNcXGFkZC1hY2hcXGFkZC1hY2guY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3BhZ2VzL2FkZC1hY2gvYWRkLWFjaC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFdBQUE7QUNDRjs7QURFQTtFQUNFLGlCQUFBO0FDQ0Y7O0FERUE7RUFDRSxVQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBO0FDQ0Y7O0FERUE7RUFDRSxjQUFBO0VBQ0EseUJBQUE7QUNDRjs7QURFQTtFQUNFLFdBQUE7RUFDQSxnQkFBQTtBQ0NGIiwiZmlsZSI6InNyYy9hcHAvcGFnZXMvYWRkLWFjaC9hZGQtYWNoLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsibWF0LWZvcm0tZmllbGQge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uYWNoLWZvcm0ge1xyXG4gIHBhZGRpbmc6IDBweCAyMHB4O1xyXG59XHJcblxyXG4uYWRkcmVzcyB7XHJcbiAgd2lkdGg6IDgwJTtcclxuICBtYXJnaW46IDEwcHggYXV0bztcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLmFkZHJlc3MgbWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgLyogbWFyZ2luLWJvdHRvbTogMTBweDsgKi9cclxufVxyXG5cclxuLmFkZHJlc3NzdWJ0aXRsZSB7XHJcbiAgY29sb3I6IGdyZXk7XHJcbiAgZm9udC1zaXplOiBzbWFsbDtcclxufVxyXG4iLCJtYXQtZm9ybS1maWVsZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYWNoLWZvcm0ge1xuICBwYWRkaW5nOiAwcHggMjBweDtcbn1cblxuLmFkZHJlc3Mge1xuICB3aWR0aDogODAlO1xuICBtYXJnaW46IDEwcHggYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5hZGRyZXNzIG1hdC1yYWRpby1idXR0b24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgLyogbWFyZ2luLWJvdHRvbTogMTBweDsgKi9cbn1cblxuLmFkZHJlc3NzdWJ0aXRsZSB7XG4gIGNvbG9yOiBncmV5O1xuICBmb250LXNpemU6IHNtYWxsO1xufSJdfQ== */\"","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport {\r\n FormBuilder,\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n AbstractControl,\r\n FormGroupDirective,\r\n NgForm,\r\n} from \"@angular/forms\";\r\nimport { Address } from \"src/app/models/address.model\";\r\nimport { Router } from \"@angular/router\";\r\nimport { PaymentService } from \"src/app/services/Payment/payment.service\";\r\nimport { AddressService } from \"src/app/services/Address/address.service\";\r\nimport { AddressUtils } from \"src/app/CommonModule/addressUtils\";\r\nimport {\r\n PaymentMethod,\r\n PaymentMethodType,\r\n} from \"src/app/models/payment-method.model\";\r\nimport { PaymentUtils } from \"src/app/CommonModule/paymentUtils\";\r\nimport { AddAddressComponent } from \"src/app/components/add-address/add-address.component\";\r\nimport { ErrorStateMatcher, MatInputModule } from '@angular/material';\r\n\r\n@Component({\r\n selector: \"app-add-ach\",\r\n templateUrl: \"./add-ach.component.html\",\r\n styleUrls: [\"./add-ach.component.scss\"],\r\n})\r\nexport class AddAchComponent implements OnInit {\r\n addAchForm: FormGroup;\r\n public addAddress: boolean = false;\r\n addresses: Address[];\r\n errorMatcher = new MyErrorStateMatcher();\r\n\r\n @ViewChild(AddAddressComponent, { static: false }) child;\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private router: Router,\r\n private paymentService: PaymentService,\r\n private addressService: AddressService\r\n ) {\r\n this.addAchForm = this.formBuilder.group({\r\n routingNum: new FormControl(\"\", [\r\n Validators.required,\r\n Validators.maxLength(9),\r\n Validators.minLength(9),\r\n ]),\r\n accountNum: new FormControl(\"\", [Validators.required]),\r\n accountNumAgain: new FormControl(\"\", [Validators.required]),\r\n accountType: new FormControl(\"\", [Validators.required]),\r\n nameOnAccount: new FormControl(\"\", []),\r\n addressRadio: new FormControl(\"\", []),\r\n bankName: new FormControl(\"\", []),\r\n }, {validator: this.matchValidator});\r\n\r\n this.addressService.getAddresses().subscribe(\r\n (data) => {\r\n if (data && data.length > 0) {\r\n const uniqueAddresses = AddressUtils.getUniqueAddresses(data);\r\n this.addAchForm.patchValue({\r\n addressRadio: uniqueAddresses[0].addressId,\r\n });\r\n this.addresses = uniqueAddresses;\r\n // this.addPaymentMethodForm.\r\n } else {\r\n this.addAddress = true;\r\n this.addresses = data;\r\n }\r\n },\r\n (err) => {\r\n this.addAddress = true;\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n onSubmit() {\r\n this.addAchForm.controls.accountNumAgain.markAsDirty();\r\n let paymentMethod = new PaymentMethod().deserialize(this.addAchForm.value);\r\n paymentMethod.nameOnAccount = paymentMethod.nameOnAccount.length >0 ? paymentMethod.nameOnAccount : \"New ACH\";\r\n let address = this.child.getAddress();\r\n if (address instanceof Address && this.addAchForm.valid) {\r\n paymentMethod.address = address;\r\n paymentMethod.routingNum = this.addAchForm.controls.routingNum.value;\r\n paymentMethod.accountNum = this.addAchForm.controls.accountNum.value;\r\n paymentMethod.accountType = parseInt(\r\n this.addAchForm.controls.accountType.value\r\n );\r\n paymentMethod.nameOnAccount = this.addAchForm.controls.nameOnAccount.value.length > 0 ?\r\n this.addAchForm.controls.nameOnAccount.value : \"New ACH\";\r\n paymentMethod.type = PaymentMethodType.ACH;\r\n paymentMethod.bankName = this.addAchForm.controls.bankName.value;\r\n if (address !== null) {\r\n this.paymentService.submitPaymentMethod(paymentMethod).subscribe(\r\n (data) => this.popScreen(),\r\n (err) => console.log(err)\r\n );\r\n }\r\n }\r\n }\r\n\r\n popScreen(event?) {\r\n if(event) {\r\n event.preventDefault();\r\n }\r\n let url = this.router.url.split(\"/\");\r\n url.pop();\r\n this.router.navigate(url);\r\n }\r\n\r\n matchValidator(form: FormGroup) {\r\n console.log(\"match validator\");\r\n const condition = form.get('accountNum').value !== form.get('accountNumAgain').value;\r\n console.log(\"condition \", condition);\r\n return condition ? { accountNumDoNotMatch: true} : null;\r\n }\r\n}\r\n\r\n /** Error when the parent is invalid */\r\n class MyErrorStateMatcher implements ErrorStateMatcher {\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n // console.log(\"control.dirty\", control.dirty);\r\n // console.log(\"formcontrol\", form.getError(\"accountNumDoNotMatch\"));\r\n\r\n // console.log(\"Cross field\", control.dirty && form.getError(\"accountNumDoNotMatch\"));\r\n // const condition = form.form.get('accountNum').value !== form.get('accountNumAgain').value;\r\n return form.getError(\"accountNumDoNotMatch\");\r\n }\r\n}\r\n","export default \"/* .submit {\\r\\n max-width: 400px;\\r\\n margin: 30px auto;\\r\\n width: 80%;\\r\\n} */\\r\\n\\r\\n.address {\\r\\n width: 80%;\\r\\n margin: 10px auto;\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.address mat-radio-button {\\r\\n display: block;\\r\\n /* margin-bottom: 10px; */\\r\\n}\\r\\n\\r\\n.addresssubtitle {\\r\\n color: grey;\\r\\n font-size: small;\\r\\n}\\r\\n\\r\\n.address-form {\\r\\n width: 80%;\\r\\n margin: 0px auto;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvYWRkLXBheW1lbnQvYWRkLXBheW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHOztBQUVIO0VBQ0UsVUFBVTtFQUNWLGlCQUFpQjtFQUNqQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsY0FBYztFQUNkLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsZ0JBQWdCO0FBQ2xCIiwiZmlsZSI6InNyYy9hcHAvcGFnZXMvYWRkLXBheW1lbnQvYWRkLXBheW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIC5zdWJtaXQge1xyXG4gIG1heC13aWR0aDogNDAwcHg7XHJcbiAgbWFyZ2luOiAzMHB4IGF1dG87XHJcbiAgd2lkdGg6IDgwJTtcclxufSAqL1xyXG5cclxuLmFkZHJlc3Mge1xyXG4gIHdpZHRoOiA4MCU7XHJcbiAgbWFyZ2luOiAxMHB4IGF1dG87XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5hZGRyZXNzIG1hdC1yYWRpby1idXR0b24ge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIC8qIG1hcmdpbi1ib3R0b206IDEwcHg7ICovXHJcbn1cclxuXHJcbi5hZGRyZXNzc3VidGl0bGUge1xyXG4gIGNvbG9yOiBncmV5O1xyXG4gIGZvbnQtc2l6ZTogc21hbGw7XHJcbn1cclxuXHJcbi5hZGRyZXNzLWZvcm0ge1xyXG4gIHdpZHRoOiA4MCU7XHJcbiAgbWFyZ2luOiAwcHggYXV0bztcclxufVxyXG4iXX0= */\"","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport * as valid from \"card-validator\";\r\nimport { ValidCard, Card } from \"src/app/models/valid-card.model\";\r\nimport {\r\n FormBuilder,\r\n FormControl,\r\n Validators,\r\n ValidatorFn,\r\n AbstractControl,\r\n ValidationErrors,\r\n} from \"@angular/forms\";\r\nimport { PaymentService } from \"src/app/services/Payment/payment.service\";\r\nimport {\r\n PaymentMethod,\r\n PaymentMethodType,\r\n} from \"src/app/models/payment-method.model\";\r\nimport { AddressService } from \"src/app/services/Address/address.service\";\r\nimport { Address } from \"src/app/models/address.model\";\r\nimport { Observable, of, BehaviorSubject } from \"rxjs\";\r\nimport { AddAddressComponent } from \"../../components/add-address/add-address.component\";\r\nimport { CreditCardValidators } from \"angular-cc-library\";\r\nimport { AddressUtils } from \"src/app/CommonModule/addressUtils\";\r\nimport { PaymentUtils } from \"src/app/CommonModule/paymentUtils\";\r\nimport { CreditCardComponent } from \"../credit-card/credit-card.component\";\r\nimport { CustomerService } from \"src/app/services/Customer/customer.service\";\r\nimport {\r\n DialogComponent,\r\n DialogData,\r\n DialogType,\r\n} from \"src/app/components/dialog/dialog.component\";\r\nimport { MatDialog } from \"@angular/material\";\r\n\r\n@Component({\r\n selector: \"app-add-payment\",\r\n templateUrl: \"./add-payment.component.html\",\r\n styleUrls: [\"./add-payment.component.css\"],\r\n})\r\nexport class AddPaymentComponent implements OnInit {\r\n card: Card;\r\n addPaymentMethodForm;\r\n public addresses: BehaviorSubject;\r\n public addAddress: boolean = false;\r\n // creditCardMask;\r\n\r\n @ViewChild(AddAddressComponent, { static: false }) addressChild;\r\n @ViewChild(CreditCardComponent, { static: false }) creditCardChild;\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private router: Router,\r\n private paymentService: PaymentService,\r\n private addressService: AddressService,\r\n private customerService: CustomerService,\r\n private dialog: MatDialog\r\n ) {\r\n this.addresses = this.addressService.addresses;\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n checkCcValidation(cardNumber) {\r\n var numberValidation = valid.number(cardNumber);\r\n if (numberValidation.card) {\r\n this.card = new Card().deserialize(numberValidation);\r\n } else {\r\n this.card = null;\r\n }\r\n }\r\n\r\n onSubmit() {\r\n let address = this.addressChild.getAddress();\r\n let paymentMethod = this.creditCardChild.getCreditCard();\r\n if (address instanceof Address && paymentMethod instanceof PaymentMethod) {\r\n paymentMethod.customerId = this.customerService.customer.value.customerID;\r\n paymentMethod.address = address;\r\n\r\n if (paymentMethod !== null && address !== null) {\r\n this.paymentService.submitPaymentMethod(paymentMethod).subscribe(\r\n (data) => this.popScreen(),\r\n (err) => {\r\n let dialogData = new DialogData();\r\n dialogData.message = err;\r\n dialogData.type = DialogType.Alert;\r\n let dialogRef = this.dialog.open(DialogComponent, {\r\n data: dialogData,\r\n });\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n toggleAddAddress() {\r\n this.addAddress = !this.addAddress;\r\n }\r\n\r\n removeAllSpaces(str: string): string {\r\n return str.replace(/\\s/g, \"\");\r\n }\r\n\r\n popScreen(event?) {\r\n if(event) {\r\n event.preventDefault();\r\n }\r\n let url = this.router.url.split(\"/\");\r\n url.pop();\r\n this.router.navigate(url);\r\n }\r\n}\r\n","export default \".radGroup {\\r\\n padding-bottom: 10px !important;\\r\\n}\\r\\n\\r\\n.radButton {\\r\\n margin: 10px 10px 10px 15px;\\r\\n}\\r\\n\\r\\n.subtitle {\\r\\n font-size: small;\\r\\n margin: 10px 10px 0px 15px;\\r\\n color: grey;\\r\\n}\\r\\n\\r\\n.current-balance {\\r\\n font-size: 12px;\\r\\n /* color: grey; */\\r\\n}\\r\\n\\r\\n#dollar:before {\\r\\n content: \\\"$\\\";\\r\\n position: absolute;\\r\\n}\\r\\n\\r\\n#dollar {\\r\\n text-align: center;\\r\\n width: 100px;\\r\\n border-bottom: 1px solid;\\r\\n margin: 0px auto;\\r\\n border-style: none;\\r\\n border-bottom-style: solid;\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\n.amount {\\r\\n height: 7vw;\\r\\n width: 7vw;\\r\\n margin: 10px;\\r\\n max-height: 200px;\\r\\n max-width: 200px;\\r\\n}\\r\\n\\r\\n.select-amount {\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -ms-flex-pack: space-evenly;\\r\\n justify-content: space-evenly;\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n.mat-card {\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -ms-flex-align: center;\\r\\n align-items: center;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n border-radius: 20px;\\r\\n min-height: 100px;\\r\\n min-width: 100px;\\r\\n box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.2);\\r\\n}\\r\\n\\r\\n.mat-card-selected {\\r\\n border: 1px solid #00abff;\\r\\n /* border-radius: 5px; */\\r\\n background-color: #d1f0ff;\\r\\n}\\r\\n\\r\\n.mat-card-recurring {\\r\\n margin: 20px auto;\\r\\n max-width: 200px;\\r\\n}\\r\\n\\r\\n.mat-card-content {\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.mat-datepicker-content-touch .mat-calendar {\\r\\n min-width: 250px;\\r\\n min-height: 312px;\\r\\n max-width: 340px !important;\\r\\n max-height: 424px !important;\\r\\n}\\r\\n\\r\\np {\\r\\n -webkit-margin-before: 0em;\\r\\n margin-block-start: 0em;\\r\\n -webkit-margin-after: 0em;\\r\\n margin-block-end: 0em;\\r\\n}\\r\\n\\r\\n.mat-stroked-button:not([disabled]) {\\r\\n border-color: rgb(244, 67, 54) !important;\\r\\n}\\r\\n\\r\\n.paymentError {\\r\\n color: white;\\r\\n background-color: #f44336;\\r\\n font-size: 14px;\\r\\n padding-left: 20px;\\r\\n}\\r\\n\\r\\n.paymentErrorBorder {\\r\\n border: 1px solid #f44336;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLCtCQUErQjtBQUNqQzs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQiwwQkFBMEI7RUFDMUIsV0FBVztBQUNiOztBQUVBO0VBQ0UsZUFBZTtFQUNmLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLFlBQVk7RUFDWixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLHdCQUF3QjtFQUN4QixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLDBCQUEwQjtFQUMxQixlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsV0FBVztFQUNYLFVBQVU7RUFDVixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDJCQUE2QjtNQUE3Qiw2QkFBNkI7RUFDN0IsYUFBYTtBQUNmOztBQUVBO0VBQ0Usb0JBQWE7RUFBYixhQUFhO0VBQ2Isc0JBQW1CO01BQW5CLG1CQUFtQjtFQUNuQixxQkFBdUI7TUFBdkIsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLDBDQUEwQztBQUM1Qzs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6Qix3QkFBd0I7RUFDeEIseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDBCQUFzQjtNQUF0QixzQkFBc0I7RUFDdEIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQiwyQkFBMkI7RUFDM0IsNEJBQTRCO0FBQzlCOztBQUNBO0VBQ0UsMEJBQXVCO1VBQXZCLHVCQUF1QjtFQUN2Qix5QkFBcUI7VUFBckIscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UseUNBQXlDO0FBQzNDOztBQUVBO0VBQ0UsWUFBWTtFQUNaLHlCQUF5QjtFQUN6QixlQUFlO0VBQ2Ysa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UseUJBQXlCO0FBQzNCIiwiZmlsZSI6InNyYy9hcHAvcGFnZXMvY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yYWRHcm91cCB7XHJcbiAgcGFkZGluZy1ib3R0b206IDEwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLnJhZEJ1dHRvbiB7XHJcbiAgbWFyZ2luOiAxMHB4IDEwcHggMTBweCAxNXB4O1xyXG59XHJcblxyXG4uc3VidGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogc21hbGw7XHJcbiAgbWFyZ2luOiAxMHB4IDEwcHggMHB4IDE1cHg7XHJcbiAgY29sb3I6IGdyZXk7XHJcbn1cclxuXHJcbi5jdXJyZW50LWJhbGFuY2Uge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICAvKiBjb2xvcjogZ3JleTsgKi9cclxufVxyXG5cclxuI2RvbGxhcjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiJFwiO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxufVxyXG5cclxuI2RvbGxhciB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHdpZHRoOiAxMDBweDtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XHJcbiAgbWFyZ2luOiAwcHggYXV0bztcclxuICBib3JkZXItc3R5bGU6IG5vbmU7XHJcbiAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG59XHJcblxyXG4uYW1vdW50IHtcclxuICBoZWlnaHQ6IDd2dztcclxuICB3aWR0aDogN3Z3O1xyXG4gIG1hcmdpbjogMTBweDtcclxuICBtYXgtaGVpZ2h0OiAyMDBweDtcclxuICBtYXgtd2lkdGg6IDIwMHB4O1xyXG59XHJcblxyXG4uc2VsZWN0LWFtb3VudCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4ubWF0LWNhcmQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBib3JkZXItcmFkaXVzOiAyMHB4O1xyXG4gIG1pbi1oZWlnaHQ6IDEwMHB4O1xyXG4gIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgYm94LXNoYWRvdzogMCAxcHggM3B4IDAgcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG59XHJcblxyXG4ubWF0LWNhcmQtc2VsZWN0ZWQge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMGFiZmY7XHJcbiAgLyogYm9yZGVyLXJhZGl1czogNXB4OyAqL1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNkMWYwZmY7XHJcbn1cclxuXHJcbi5tYXQtY2FyZC1yZWN1cnJpbmcge1xyXG4gIG1hcmdpbjogMjBweCBhdXRvO1xyXG4gIG1heC13aWR0aDogMjAwcHg7XHJcbn1cclxuXHJcbi5tYXQtY2FyZC1jb250ZW50IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4ubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaCAubWF0LWNhbGVuZGFyIHtcclxuICBtaW4td2lkdGg6IDI1MHB4O1xyXG4gIG1pbi1oZWlnaHQ6IDMxMnB4O1xyXG4gIG1heC13aWR0aDogMzQwcHggIWltcG9ydGFudDtcclxuICBtYXgtaGVpZ2h0OiA0MjRweCAhaW1wb3J0YW50O1xyXG59XHJcbnAge1xyXG4gIG1hcmdpbi1ibG9jay1zdGFydDogMGVtO1xyXG4gIG1hcmdpbi1ibG9jay1lbmQ6IDBlbTtcclxufVxyXG5cclxuLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSkge1xyXG4gIGJvcmRlci1jb2xvcjogcmdiKDI0NCwgNjcsIDU0KSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucGF5bWVudEVycm9yIHtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcclxuICBmb250LXNpemU6IDE0cHg7XHJcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG59XHJcblxyXG4ucGF5bWVudEVycm9yQm9yZGVyIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZjQ0MzM2O1xyXG59XHJcbiJdfQ== */\"","import { Component, OnInit, Input, ɵCompiler_compileModuleSync__POST_R3__ } from \"@angular/core\";\r\nimport { NgForm } from \"@angular/forms\";\r\nimport { MatDatepickerInputEvent } from \"@angular/material/datepicker\";\r\nimport { EmbeddableWidget } from \"@acpaas-ui/ngx-embeddable-widgets\";\r\nimport { PaymentService } from \"../../services/Payment/payment.service\";\r\nimport { FormControl } from \"@angular/forms\";\r\nimport { BreakpointObserver, Breakpoints } from \"@angular/cdk/layout\";\r\nimport { CustomerService } from \"src/app/services/Customer/customer.service\";\r\nimport { Customer, NewCustomer } from \"src/app/models/customer.model\";\r\nimport { Observable, BehaviorSubject } from \"rxjs\";\r\nimport { PaymentMethod, PaymentMethodType } from \"src/app/models/payment-method.model\";\r\nimport { Address } from \"src/app/models/address.model\";\r\nimport { AddressService } from \"src/app/services/Address/address.service\";\r\nimport { Auth0Service } from \"src/app/services/Auth/auth0.service\";\r\nimport { Router, NavigationStart, ActivatedRoute } from \"@angular/router\";\r\nimport { TransactionService } from \"src/app/services/Transaction/transaction.service\";\r\nimport { ZoidHelperService } from \"src/app/services/ZoidHelper/zoid-helper.service\";\r\nimport { LoaderService } from \"src/app/services/Loader/loader.service\";\r\nimport { finalize } from \"rxjs/operators\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { BCBSLA, VANTAGE } from \"src/app/CommonModule/constants\";\r\nimport { PaymentTypes } from \"src/app/models/transaction.model\";\r\nimport { query } from \"@angular/animations\";\r\n\r\n@Component({\r\n selector: \"app-checkout\",\r\n templateUrl: \"./checkout.component.html\",\r\n styleUrls: [\"./checkout.component.css\"],\r\n})\r\n@EmbeddableWidget(\"../../assets/widget.json\")\r\nexport class CheckoutComponent implements OnInit {\r\n @Input()\r\n public name: string;\r\n @Input()\r\n public price: number;\r\n @Input()\r\n public onPaymentReceived;\r\n companyName: string;\r\n\r\n public customer$: BehaviorSubject;\r\n public selectedPaymentMethod$: BehaviorSubject<\r\n PaymentMethod\r\n > = new BehaviorSubject(new PaymentMethod());\r\n public selectedAddress$: BehaviorSubject
;\r\n selectedAmount: number;\r\n public paymentTotal$: BehaviorSubject;\r\n public selectedTotal$: BehaviorSubject;\r\n public selectedBox$: BehaviorSubject;\r\n public remittanceAccountId$;\r\n public remittanceAccountValue$;\r\n public remittanceAccountType$;\r\n public paymentType$: BehaviorSubject;\r\n public programValue$: BehaviorSubject;\r\n public policyValue$: BehaviorSubject;\r\n PaymentTypes = PaymentTypes;\r\n PaymentMethodType = PaymentMethodType;\r\n\r\n date = new FormControl(new Date());\r\n amount = new FormControl(\"\", []);\r\n paymentMethodError;\r\n newCustomer = false;\r\n\r\n draftDays: any[];\r\n selectedDay: number;\r\n\r\n transactionServiceRefForTemplate: TransactionService;\r\n\r\n paymentTotalDisplay: number;\r\n constructor(\r\n private customerService: CustomerService,\r\n private paymentService: PaymentService,\r\n public auth0: Auth0Service,\r\n private router: Router,\r\n private transactionService: TransactionService,\r\n private zoidHelperService: ZoidHelperService,\r\n private addressService: AddressService,\r\n private route: ActivatedRoute,\r\n private loaderService: LoaderService,\r\n ) {\r\n this.customer$ = this.customerService.customer;\r\n this.selectedPaymentMethod$ = this.paymentService.selectedPaymentMethod;\r\n this.paymentTotal$ = this.zoidHelperService.paymentTotal$;\r\n this.paymentTotalDisplay = 0;\r\n this.paymentType$ = this.zoidHelperService.paymentType$;\r\n this.selectedTotal$ = this.zoidHelperService.selectedTotal$;\r\n this.selectedBox$ = this.zoidHelperService.selectedBox$;\r\n this.remittanceAccountId$ = this.zoidHelperService.remmitanceAccountId$;\r\n this.remittanceAccountValue$ = this.zoidHelperService.remmitanceAccountValue$;\r\n this.programValue$ = this.zoidHelperService.programValue$;\r\n this.policyValue$ = this.zoidHelperService.policyValue$;\r\n this.draftDays = this.customerService.draftDays;\r\n\r\n this.amount.valueChanges.subscribe((data) => {\r\n this.selectedTotal$.next(data);\r\n });\r\n\r\n this.transactionServiceRefForTemplate = this.transactionService;\r\n\r\n if (environment.organization === VANTAGE)\r\n this.companyName = \"Vantage Health Plan, Inc\";\r\n else if (environment.organization === BCBSLA)\r\n this.companyName = \"Blue Cross and Blue Shield of Louisiana\";\r\n }\r\n\r\n ngOnInit() {\r\n this.customerService.selectedDraftDay.subscribe(data => {\r\n this.selectedDay = data;\r\n })\r\n this.zoidHelperService.paymentTotal$.subscribe(answer => {\r\n this.paymentTotalDisplay = answer;\r\n console.log(\"answer\",answer);\r\n })\r\n this.draftDays = this.customerService.programRules.getValue().draftDays;\r\n }\r\n addEvent(type: string, event: MatDatepickerInputEvent) {\r\n this.date.setValue(event.value);\r\n }\r\n\r\n public auiOnWidgetInit(props) {\r\n if (props) {\r\n this.paymentTotal$.next(props.price);\r\n this.zoidHelperService.onPaymentReceivedFunc = props.onPaymentReceived;\r\n this.zoidHelperService.closeFunc = props.close;\r\n this.remittanceAccountId$.next(props.remittanceAccountId);\r\n\r\n if(props.program){\r\n this.programValue$.next(props.program);\r\n }\r\n if (props.remittanceAccountValue) {\r\n this.remittanceAccountValue$.next(props.remittanceAccountValue);\r\n }\r\n console.log(\"props.program\",props.program);\r\n if(props.policy){\r\n this.policyValue$.next(props.policy);\r\n }\r\n console.log(\"props.policy\",props.policy);\r\n if (!isNaN(props.paymentType)) {\r\n this.zoidHelperService.paymentType$.next(props.paymentType);\r\n }\r\n if (props.customerId) {\r\n this.loaderService.showLoadingSpinner();\r\n this.customerService\r\n .getCustomerByIdAndRemittance(props.customerId, this.remittanceAccountValue$.getValue())\r\n .pipe(\r\n finalize(() => {\r\n this.loaderService.hideLoadingSpinner();\r\n })\r\n )\r\n .subscribe(\r\n (data) => {\r\n console.log(data)\r\n this.customerService.customer.next(data)\r\n console.log(\"data: \",data);\r\n console.log(this.customerService.customer.getValue())\r\n this.customerService.getProgram(this.customerService.customer.getValue(),this.customerService.customer.getValue().remittanceAccounts[0].remittanceAccountId)\r\n .subscribe( answer => {\r\n console.log(\"getprogram answer: \",answer);\r\n this.customerService.programRules.next(answer);\r\n this.customerService.programRules.subscribe( programAnswer => {\r\n this.draftDays = programAnswer.draftDays;\r\n console.log(\"dd: \",this.draftDays)\r\n this.customerService.selectedDraftDay.next(this.draftDays[0].numericDay);\r\n this.paymentService.canUseACH.next(programAnswer.canUseACH);\r\n this.paymentService.canUseCreditCard.next(programAnswer.canUseCreditCard);\r\n })\r\n })\r\n },\r\n (err) => {\r\n this.router.navigateByUrl(\"/error\");\r\n }\r\n );\r\n\r\n if (props.remittanceAccountValue) {\r\n this.remittanceAccountValue$.next(props.remittanceAccountValue);\r\n\r\n if(!this.transactionService.isEditingTransaction && props.paymentType == 2){\r\n console.log(props.customerId)\r\n this.transactionService\r\n .checkRecurringPayments(props.customerId,props.remittanceAccountValue,1)\r\n .subscribe(\r\n (data) => {\r\n this.transactionService.editingTransaction.next(data);\r\n if(data.recurringPaymentId){\r\n this.transactionService.isEditingTransaction = true;\r\n }\r\n }\r\n )\r\n } else {\r\n console.log(this.transactionService.editingTransaction.getValue());\r\n }\r\n\r\n } else {\r\n this.router.navigateByUrl(\"/error\");\r\n }\r\n } else if (props.newCustomerData) {\r\n let newCustomerData: NewCustomer = new NewCustomer().deserialize(\r\n props.newCustomerData\r\n );\r\n if (newCustomerData.fullName == \"\" && newCustomerData.email == \"\" && newCustomerData.remittanceAccountType && newCustomerData.remittanceAccountValue == \"\") {\r\n console.log(\"new customerData if: \",newCustomerData);\r\n this.router.navigateByUrl(\"/error\");\r\n } else {\r\n this.newCustomer = true;\r\n console.log(\"new customerData: \",newCustomerData);\r\n this.remittanceAccountValue$.next(newCustomerData.remittanceAccountValue);\r\n this.customerService.createCustomer(newCustomerData).subscribe(\r\n (newCustomerDataReturn) => {\r\n this.newCustomer = false;\r\n // this.remittanceAccountId$.next(newCustomerDataReturn.arAccountId);\r\n this.customerService.getCustomerByIdAndRemittance(newCustomerDataReturn.customerID,this.remittanceAccountValue$.getValue())\r\n .subscribe(\r\n (data) => {\r\n console.log(\"getCustomer: \",data);\r\n this.customerService.customer.next(data)\r\n console.log(\"data: \",data);\r\n console.log(this.customerService.customer.getValue())\r\n this.customerService.getProgram(this.customerService.customer.getValue(),this.customerService.customer.getValue().remittanceAccounts[0].remittanceAccountId)\r\n .subscribe( answer => {\r\n console.log(\"getprogram answer: \",answer);\r\n this.customerService.programRules.next(answer);\r\n this.customerService.programRules.subscribe( programAnswer => {\r\n this.draftDays = programAnswer.draftDays;\r\n console.log(\"dd: \",this.draftDays)\r\n this.customerService.selectedDraftDay.next(this.draftDays[0].numericDay);\r\n this.paymentService.canUseACH.next(programAnswer.canUseACH);\r\n this.paymentService.canUseCreditCard.next(programAnswer.canUseCreditCard);\r\n })\r\n })\r\n },\r\n (err) => {\r\n this.router.navigateByUrl(\"/error\");\r\n }\r\n );\r\n },\r\n (error) => this.router.navigateByUrl(\"/error\")\r\n );\r\n }\r\n }\r\n\r\n if (props.address) {\r\n let passedAddress = new Address().deserialize(props.address);\r\n this.addressService.addresses.next([passedAddress]);\r\n }\r\n\r\n // this.onPaymentReceived = props.onPaymentReceived;\r\n } else if (this.router.url.split(\"?\")[0] === \"/admin-payment\") {\r\n // this.loaderService.isLoading.next(true);\r\n this.route.queryParams.subscribe((queryParams) => {\r\n if(queryParams)\r\n {\r\n console.log(\"query params: \",queryParams)\r\n if (queryParams.RemittanceAccountId) {\r\n this.remittanceAccountId$.next(queryParams.RemittanceAccountId);\r\n console.log(\"remittanceAcc: \",this.remittanceAccountId$.getValue())\r\n }\r\n \r\n if (!isNaN(queryParams.PaymentType) && queryParams.PaymentType == PaymentTypes.RecurringPayment.toString()) {\r\n this.loaderService.showLoadingSpinner();\r\n this.zoidHelperService.paymentType$.next(PaymentTypes.RecurringPayment);\r\n this.loaderService.hideLoadingSpinner();\r\n }\r\n \r\n if (queryParams.Balance) {\r\n this.paymentTotal$.next(parseFloat(queryParams.Balance));\r\n }\r\n if(queryParams.CustomerId){\r\n console.log(\"customer: \",queryParams.CustomerId);\r\n }\r\n if (queryParams.remittanceAccountValue) {\r\n this.remittanceAccountValue$.next(queryParams.remittanceAccountValue);\r\n }\r\n this.loaderService.showLoadingSpinner();\r\n if(queryParams.RecurringPaymentId) {\r\n console.log(\"recurring PaymentID: \",queryParams.RecurringPaymentId)\r\n this.loaderService.showLoadingSpinner();\r\n this.transactionService.isEditingTransaction = true;\r\n this.transactionService.getRecurringPayment(queryParams.RecurringPaymentId, queryParams.CustomerId)\r\n .subscribe(\r\n rp => {\r\n console.log(\"rp: \",rp)\r\n this.remittanceAccountId$.next(rp.remittanceAccountId)\r\n this.customerService.getCustomerByIdAndRemittance(rp.customerId, rp.recurringPaymentId)\r\n .subscribe(answer => {\r\n if(answer)\r\n {\r\n this.customerService.customer.next(answer);\r\n }\r\n })\r\n this.customerService.getProgramByCustomerId(rp.customerId,rp.remittanceAccountId)\r\n .subscribe( answer => {\r\n console.log(\"getprogram answer: \",answer);\r\n this.customerService.programRules.next(answer);\r\n this.customerService.programRules.subscribe( programAnswer => {\r\n this.draftDays = programAnswer.draftDays;\r\n this.customerService.selectedDraftDay.next(this.draftDays[0].numericDay);\r\n this.paymentService.canUseACH.next(programAnswer.canUseACH);\r\n this.paymentService.canUseCreditCard.next(programAnswer.canUseCreditCard);\r\n })\r\n })\r\n this.loaderService.showLoadingSpinner();\r\n \r\n if(rp != null && rp.recurringPaymentId) {\r\n this.transactionService.editingTransaction.next(rp);\r\n this.paymentService.getPaymentMethodById(rp.paymentMethodId)\r\n .subscribe(\r\n pm => {\r\n console.log({pm})\r\n this.paymentService.selectedPaymentMethod.next(pm);\r\n this.loaderService.hideLoadingSpinner();\r\n },\r\n err => {\r\n console.log(err);\r\n this.loaderService.hideLoadingSpinner();\r\n }\r\n );\r\n this.zoidHelperService.paymentType$.next(PaymentTypes.RecurringPayment);\r\n }\r\n },\r\n err =>{\r\n this.router.navigateByUrl(\"/error\");\r\n }\r\n );\r\n } else {\r\n this.customerService\r\n .getCustomerByIdAndRemittance(queryParams.CustomerId, queryParams.RemittanceAccountId)\r\n .pipe(\r\n finalize(() => {\r\n this.loaderService.hideLoadingSpinner();\r\n })\r\n )\r\n .subscribe(\r\n (data) => {\r\n if(data){\r\n console.log(\"getCustomer: \",data);\r\n this.customerService.customer.next(data)\r\n // console.log(\"data: \",data);\r\n console.log(this.customerService.customer.getValue())\r\n this.remittanceAccountId$.next( queryParams.RemittanceAccountId)\r\n this.customerService.getProgram(this.customerService.customer.getValue(), queryParams.RemittanceAccountId)\r\n .subscribe( answer => {\r\n console.log(\"getprogram answer: \",answer);\r\n this.customerService.programRules.next(answer);\r\n this.customerService.programRules.subscribe( programAnswer => {\r\n this.draftDays = programAnswer.draftDays;\r\n this.customerService.selectedDraftDay.next(this.draftDays[0].numericDay);\r\n this.paymentService.canUseACH.next(programAnswer.canUseACH);\r\n this.paymentService.canUseCreditCard.next(programAnswer.canUseCreditCard);\r\n })\r\n })\r\n } else { console.log(\"no data\") }\r\n },\r\n (err) => {\r\n console.log(\"whoops: \",err)\r\n // this.router.navigateByUrl(\"/error\");\r\n }\r\n );\r\n }\r\n this.router.navigateByUrl(\"/admin-payment\");\r\n }\r\n });\r\n } else {\r\n if(environment.production)\r\n {\r\n this.router.navigateByUrl(\"/error\");\r\n }\r\n this.loaderService.showLoadingSpinner();\r\n // TODO: THrow error and route to error page\r\n this.customerService.getCustomer()\r\n .pipe(\r\n finalize(\r\n ()=>{\r\n this.loaderService.hideLoadingSpinner();\r\n }\r\n )\r\n )\r\n .subscribe(\r\n (data) => this.customerService.customer.next(data),\r\n (err) => {\r\n // this.router.navigateByUrl(\"/error\");\r\n console.error(\"No customer record found\");\r\n }\r\n );\r\n }\r\n }\r\n\r\n onItemChange(){\r\n console.log(\" Value is : \", this.selectedDay );\r\n this.customerService.selectedDraftDay.next(this.selectedDay);\r\n }\r\n\r\n pastDateFilter = (d: Date): boolean => {\r\n const yesterday = new Date();\r\n yesterday.setDate(yesterday.getDate() - 1);\r\n return d > yesterday;\r\n };\r\n\r\n payAmountSelection(selection: number) {\r\n // 1 for default and 2 for input amount\r\n this.selectedBox$.next(selection);\r\n }\r\n\r\n stopRecurringPayment(){\r\n let url = this.router.url\r\n console.log(\"url\",url);\r\n if(url.indexOf(\"admin\") > 0) {\r\n console.log(\"in admin\");\r\n this.router.navigateByUrl(\"admin-payment/stop-recurring\");\r\n } else {\r\n this.router.navigateByUrl(\"/payment/stop-recurring\");\r\n }\r\n }\r\n\r\n onSubmit() {\r\n if (this.selectedPaymentMethod$.getValue().paymentMethodId === undefined) {\r\n this.paymentMethodError = true;\r\n } else {\r\n this.paymentMethodError = false;\r\n let url = this.router.url.split(\"/\");\r\n url.push(\"review\");\r\n this.router.navigate(url);\r\n }\r\n }\r\n\r\n closeWindow() {\r\n this.zoidHelperService.closeFunc();\r\n }\r\n\r\n}\r\n","export default \".cc {\\r\\n max-width: 400px;\\r\\n max-height: 250px;\\r\\n min-height: 200px;\\r\\n min-width: 300px;\\r\\n width: 80%;\\r\\n /* border: 1px solid #c3c3c3; */\\r\\n margin: 20px auto;\\r\\n border-radius: 10px;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n transition: all 0.5s ease;\\r\\n box-shadow: -1px 10px 66px -24px rgba(0, 0, 0, 0.58);\\r\\n}\\r\\n\\r\\n.cc img {\\r\\n height: 20px;\\r\\n padding: 20px;\\r\\n float: right;\\r\\n}\\r\\n\\r\\n.discoverGradient img {\\r\\n height: 15px !important;\\r\\n}\\r\\n\\r\\n.amexGradient img {\\r\\n height: 30px !important;\\r\\n}\\r\\n\\r\\n.mastercardGradient img {\\r\\n height: 50px !important;\\r\\n}\\r\\n\\r\\n.visaGradient {\\r\\n background-image: linear-gradient(135deg, #abdcff 10%, #43b1ff 100%);\\r\\n}\\r\\n\\r\\n.discoverGradient {\\r\\n background-image: linear-gradient(135deg, #fbd9a4 10%, #e2623b 100%);\\r\\n}\\r\\n\\r\\n.amexGradient {\\r\\n background-image: linear-gradient(135deg, #3498ff61 10%, #0900ffb5 100%);\\r\\n}\\r\\n\\r\\n.mastercardGradient {\\r\\n background-image: linear-gradient(135deg, #ff997a 10%, #f9c97f 100%);\\r\\n}\\r\\n\\r\\n.errorCardGradient {\\r\\n background: rgb(249, 138, 116);\\r\\n background: linear-gradient(135deg, #ffdcdc 0%, #e63c3c 100%);\\r\\n}\\r\\n\\r\\n.cross-icon {\\r\\n font-size: 50px;\\r\\n float: right;\\r\\n width: 60px;\\r\\n display: block;\\r\\n color: #a72626;\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n.visa .mat-form-field-appearance-legacy .mat-form-field-underline {\\r\\n background-color: rgba(255, 255, 255, 0.42) !important;\\r\\n}\\r\\n\\r\\n.card-inputs {\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -ms-flex-wrap: wrap;\\r\\n flex-wrap: wrap;\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n.mmyy-cvv {\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n width: 100%;\\r\\n -ms-flex-pack: justify;\\r\\n justify-content: space-between;\\r\\n}\\r\\n\\r\\n.mmyy-cvv mat-form-field {\\r\\n width: 100px;\\r\\n}\\r\\n\\r\\n.full-width {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\nmd-input-container:not(.md-input-invalid).md-input-focused .md-input {\\r\\n border-color: red;\\r\\n}\\r\\n\\r\\n.account-nickname {\\r\\n max-width: 380px;\\r\\n max-height: 250px;\\r\\n /* min-height: 200px; */\\r\\n min-width: 200px;\\r\\n width: 80%;\\r\\n /* width: 250px; */\\r\\n margin: 5px auto;\\r\\n}\\r\\n\\r\\n.submit {\\r\\n max-width: 400px;\\r\\n margin: 30px auto;\\r\\n width: 80%;\\r\\n}\\r\\n\\r\\n.address {\\r\\n width: 80%;\\r\\n margin: 10px auto;\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.address mat-radio-button {\\r\\n display: block;\\r\\n /* margin-bottom: 10px; */\\r\\n}\\r\\n\\r\\n.addresssubtitle {\\r\\n color: grey;\\r\\n font-size: small;\\r\\n}\\r\\n\\r\\n.address-form {\\r\\n width: 80%;\\r\\n margin: 0px auto;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvY3JlZGl0LWNhcmQvY3JlZGl0LWNhcmQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixVQUFVO0VBQ1YsK0JBQStCO0VBQy9CLGlCQUFpQjtFQUNqQixtQkFBbUI7RUFDbkIsb0JBQWE7RUFBYixhQUFhO0VBQ2IsMEJBQXNCO01BQXRCLHNCQUFzQjtFQUN0Qix5QkFBeUI7RUFHekIsb0RBQW9EO0FBQ3REOztBQUVBO0VBQ0UsWUFBWTtFQUNaLGFBQWE7RUFDYixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSx1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSx1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSx1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSxvRUFBb0U7QUFDdEU7O0FBRUE7RUFDRSxvRUFBb0U7QUFDdEU7O0FBRUE7RUFDRSx3RUFBd0U7QUFDMUU7O0FBRUE7RUFDRSxvRUFBb0U7QUFDdEU7O0FBRUE7RUFDRSw4QkFBOEI7RUFDOUIsNkRBQTZEO0FBQy9EOztBQUVBO0VBQ0UsZUFBZTtFQUNmLFlBQVk7RUFDWixXQUFXO0VBQ1gsY0FBYztFQUNkLGNBQWM7RUFDZCxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxzREFBc0Q7QUFDeEQ7O0FBRUE7RUFDRSxvQkFBYTtFQUFiLGFBQWE7RUFDYixtQkFBZTtNQUFmLGVBQWU7RUFDZixhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxvQkFBYTtFQUFiLGFBQWE7RUFDYixXQUFXO0VBQ1gsc0JBQThCO01BQTlCLDhCQUE4QjtBQUNoQzs7QUFFQTtFQUNFLFlBQVk7QUFDZDs7QUFFQTtFQUNFLFdBQVc7QUFDYjs7QUFFQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsdUJBQXVCO0VBQ3ZCLGdCQUFnQjtFQUNoQixVQUFVO0VBQ1Ysa0JBQWtCO0VBQ2xCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsVUFBVTtBQUNaOztBQUVBO0VBQ0UsVUFBVTtFQUNWLGlCQUFpQjtFQUNqQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsY0FBYztFQUNkLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsZ0JBQWdCO0FBQ2xCIiwiZmlsZSI6InNyYy9hcHAvcGFnZXMvY3JlZGl0LWNhcmQvY3JlZGl0LWNhcmQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jYyB7XHJcbiAgbWF4LXdpZHRoOiA0MDBweDtcclxuICBtYXgtaGVpZ2h0OiAyNTBweDtcclxuICBtaW4taGVpZ2h0OiAyMDBweDtcclxuICBtaW4td2lkdGg6IDMwMHB4O1xyXG4gIHdpZHRoOiA4MCU7XHJcbiAgLyogYm9yZGVyOiAxcHggc29saWQgI2MzYzNjMzsgKi9cclxuICBtYXJnaW46IDIwcHggYXV0bztcclxuICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xyXG4gIC13ZWJraXQtYm94LXNoYWRvdzogLTFweCAxMHB4IDY2cHggLTI0cHggcmdiYSgwLCAwLCAwLCAwLjU4KTtcclxuICAtbW96LWJveC1zaGFkb3c6IC0xcHggMTBweCA2NnB4IC0yNHB4IHJnYmEoMCwgMCwgMCwgMC41OCk7XHJcbiAgYm94LXNoYWRvdzogLTFweCAxMHB4IDY2cHggLTI0cHggcmdiYSgwLCAwLCAwLCAwLjU4KTtcclxufVxyXG5cclxuLmNjIGltZyB7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG4gIHBhZGRpbmc6IDIwcHg7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG59XHJcblxyXG4uZGlzY292ZXJHcmFkaWVudCBpbWcge1xyXG4gIGhlaWdodDogMTVweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYW1leEdyYWRpZW50IGltZyB7XHJcbiAgaGVpZ2h0OiAzMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tYXN0ZXJjYXJkR3JhZGllbnQgaW1nIHtcclxuICBoZWlnaHQ6IDUwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLnZpc2FHcmFkaWVudCB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2FiZGNmZiAxMCUsICM0M2IxZmYgMTAwJSk7XHJcbn1cclxuXHJcbi5kaXNjb3ZlckdyYWRpZW50IHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZmJkOWE0IDEwJSwgI2UyNjIzYiAxMDAlKTtcclxufVxyXG5cclxuLmFtZXhHcmFkaWVudCB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzM0OThmZjYxIDEwJSwgIzA5MDBmZmI1IDEwMCUpO1xyXG59XHJcblxyXG4ubWFzdGVyY2FyZEdyYWRpZW50IHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZmY5OTdhIDEwJSwgI2Y5Yzk3ZiAxMDAlKTtcclxufVxyXG5cclxuLmVycm9yQ2FyZEdyYWRpZW50IHtcclxuICBiYWNrZ3JvdW5kOiByZ2IoMjQ5LCAxMzgsIDExNik7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmZGNkYyAwJSwgI2U2M2MzYyAxMDAlKTtcclxufVxyXG5cclxuLmNyb3NzLWljb24ge1xyXG4gIGZvbnQtc2l6ZTogNTBweDtcclxuICBmbG9hdDogcmlnaHQ7XHJcbiAgd2lkdGg6IDYwcHg7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgY29sb3I6ICNhNzI2MjY7XHJcbiAgcGFkZGluZzogMTBweDtcclxufVxyXG5cclxuLnZpc2EgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40MikgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmNhcmQtaW5wdXRzIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4ubW15eS1jdnYge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG59XHJcblxyXG4ubW15eS1jdnYgbWF0LWZvcm0tZmllbGQge1xyXG4gIHdpZHRoOiAxMDBweDtcclxufVxyXG5cclxuLmZ1bGwtd2lkdGgge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG5tZC1pbnB1dC1jb250YWluZXI6bm90KC5tZC1pbnB1dC1pbnZhbGlkKS5tZC1pbnB1dC1mb2N1c2VkIC5tZC1pbnB1dCB7XHJcbiAgYm9yZGVyLWNvbG9yOiByZWQ7XHJcbn1cclxuXHJcbi5hY2NvdW50LW5pY2tuYW1lIHtcclxuICBtYXgtd2lkdGg6IDM4MHB4O1xyXG4gIG1heC1oZWlnaHQ6IDI1MHB4O1xyXG4gIC8qIG1pbi1oZWlnaHQ6IDIwMHB4OyAqL1xyXG4gIG1pbi13aWR0aDogMjAwcHg7XHJcbiAgd2lkdGg6IDgwJTtcclxuICAvKiB3aWR0aDogMjUwcHg7ICovXHJcbiAgbWFyZ2luOiA1cHggYXV0bztcclxufVxyXG5cclxuLnN1Ym1pdCB7XHJcbiAgbWF4LXdpZHRoOiA0MDBweDtcclxuICBtYXJnaW46IDMwcHggYXV0bztcclxuICB3aWR0aDogODAlO1xyXG59XHJcblxyXG4uYWRkcmVzcyB7XHJcbiAgd2lkdGg6IDgwJTtcclxuICBtYXJnaW46IDEwcHggYXV0bztcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLmFkZHJlc3MgbWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgLyogbWFyZ2luLWJvdHRvbTogMTBweDsgKi9cclxufVxyXG5cclxuLmFkZHJlc3NzdWJ0aXRsZSB7XHJcbiAgY29sb3I6IGdyZXk7XHJcbiAgZm9udC1zaXplOiBzbWFsbDtcclxufVxyXG5cclxuLmFkZHJlc3MtZm9ybSB7XHJcbiAgd2lkdGg6IDgwJTtcclxuICBtYXJnaW46IDBweCBhdXRvO1xyXG59XHJcbiJdfQ== */\"","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport * as valid from \"card-validator\";\r\nimport { ValidCard, Card } from \"src/app/models/valid-card.model\";\r\nimport {\r\n FormBuilder,\r\n FormControl,\r\n Validators,\r\n ValidatorFn,\r\n AbstractControl,\r\n ValidationErrors,\r\n FormGroup,\r\n} from \"@angular/forms\";\r\nimport { PaymentService } from \"src/app/services/Payment/payment.service\";\r\nimport {\r\n PaymentMethod,\r\n PaymentMethodType,\r\n} from \"src/app/models/payment-method.model\";\r\nimport { AddressService } from \"src/app/services/Address/address.service\";\r\nimport { Address } from \"src/app/models/address.model\";\r\nimport { Observable, of, BehaviorSubject, defer } from \"rxjs\";\r\nimport { AddAddressComponent } from \"../../components/add-address/add-address.component\";\r\nimport { CreditCardValidators, CreditCard } from \"angular-cc-library\";\r\nimport { AddressUtils } from \"src/app/CommonModule/addressUtils\";\r\nimport { PaymentUtils } from \"src/app/CommonModule/paymentUtils\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { AuthenticationService } from 'src/app/services/Auth/authentication.service';\r\n@Component({\r\n selector: \"app-credit-card\",\r\n templateUrl: \"./credit-card.component.html\",\r\n styleUrls: [\"./credit-card.component.css\"],\r\n})\r\nexport class CreditCardComponent implements OnInit {\r\n card: Card;\r\n public addPaymentMethodForm: FormGroup;\r\n public addresses: BehaviorSubject;\r\n public addAddress: boolean = false;\r\n // creditCardMask;\r\n public type$ = defer(\r\n () => this.addPaymentMethodForm.controls.cardNumber.valueChanges\r\n ).pipe(map((num: string) => CreditCard.cardType(num)));\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private authService: AuthenticationService\r\n ) {\r\n // this.creditCardMask = \"0000 0000 0000 0000\";\r\n this.addPaymentMethodForm = this.formBuilder.group({\r\n nameOnAccount: new FormControl(\"\", [Validators.required]),\r\n cardNumber: new FormControl(\"\", [\r\n CreditCardValidators.validateCCNumber,\r\n this.validateCreditCardTypes,\r\n ]),\r\n cardExp: new FormControl(\"\", [\r\n CreditCardValidators.validateExpDate,\r\n Validators.maxLength(7),\r\n ]),\r\n cvv: new FormControl(\"\", [\r\n this.validateCvvRequired(() => true, Validators.required),\r\n Validators.maxLength(3),\r\n ]),\r\n });\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n checkCcValidation(cardNumber) {\r\n var numberValidation = valid.number(cardNumber);\r\n if (numberValidation.card) {\r\n this.card = new Card().deserialize(numberValidation);\r\n } else {\r\n this.card = null;\r\n }\r\n }\r\n\r\n getCreditCard() {\r\n let paymentMethod;\r\n this.addPaymentMethodForm.markAllAsTouched();\r\n // this.addressEvent.emit(address);\r\n if (this.addPaymentMethodForm.valid) {\r\n paymentMethod = new PaymentMethod().deserialize(\r\n this.addPaymentMethodForm.value\r\n );\r\n paymentMethod.type = PaymentMethodType.Credit_Card;\r\n paymentMethod.cardNumber = PaymentUtils.removeAllSpaces(\r\n paymentMethod.cardNumber\r\n );\r\n paymentMethod.cardExp = PaymentUtils.removeAllSpaces(\r\n paymentMethod.cardExp\r\n );\r\n return paymentMethod;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n removeAllSpaces(str: string): string {\r\n return str.replace(/\\s/g, \"\");\r\n }\r\n\r\n validateCreditCardTypes(control: AbstractControl) {\r\n if (control.value) {\r\n let cardType = CreditCard.cardFromNumber(control.value);\r\n if (cardType !== undefined) {\r\n if (cardType.type !== \"visa\" && cardType.type !== \"discover\" && cardType.type !== \"mastercard\") {\r\n return { cardType: true };\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n validateCvvRequired(predicate, validator) {\r\n return (formControl => {\r\n if (!formControl.parent) {\r\n return null;\r\n }\r\n if (predicate()) {\r\n return validator(formControl);\r\n }\r\n return null;\r\n })\r\n }\r\n}\r\n","export default \".address {\\n width: 80%;\\n margin: 10px auto;\\n display: block;\\n}\\n\\n.address mat-radio-button {\\n display: block;\\n /* margin-bottom: 10px; */\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvZWRpdC1wYXltZW50L0M6XFxVc2Vyc1xcdmRoYWthbFxcc291cmNlXFxyZXBvc1xcdmFudGFnZS1wYXltZW50LXBvcnRhbFxcVmFudGFnZVBheW1lbnRDb3JlQW5ndWxhclxcQ2xpZW50QXBwL3NyY1xcYXBwXFxwYWdlc1xcZWRpdC1wYXltZW50XFxlZGl0LXBheW1lbnQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3BhZ2VzL2VkaXQtcGF5bWVudC9lZGl0LXBheW1lbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxVQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBO0FDQ0Y7O0FERUE7RUFDRSxjQUFBO0VBQ0EseUJBQUE7QUNDRiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL2VkaXQtcGF5bWVudC9lZGl0LXBheW1lbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYWRkcmVzcyB7XHJcbiAgd2lkdGg6IDgwJTtcclxuICBtYXJnaW46IDEwcHggYXV0bztcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLmFkZHJlc3MgbWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgLyogbWFyZ2luLWJvdHRvbTogMTBweDsgKi9cclxufVxyXG4iLCIuYWRkcmVzcyB7XG4gIHdpZHRoOiA4MCU7XG4gIG1hcmdpbjogMTBweCBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmFkZHJlc3MgbWF0LXJhZGlvLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICAvKiBtYXJnaW4tYm90dG9tOiAxMHB4OyAqL1xufSJdfQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Router } from '@angular/router';\r\nimport { AddAddressComponent } from 'src/app/components/add-address/add-address.component';\r\nimport { DialogComponent, DialogData, DialogType } from 'src/app/components/dialog/dialog.component';\r\nimport { Address } from 'src/app/models/address.model';\r\nimport { PaymentMethod, PaymentMethodType } from 'src/app/models/payment-method.model';\r\nimport { AddressService } from 'src/app/services/Address/address.service';\r\nimport { PaymentService } from 'src/app/services/Payment/payment.service';\r\n\r\n@Component({\r\n selector: 'app-edit-payment',\r\n templateUrl: './edit-payment.component.html',\r\n styleUrls: ['./edit-payment.component.scss']\r\n})\r\nexport class EditPaymentComponent implements OnInit {\r\n\r\n public addAddress: boolean = false;\r\n public editingPaymentMethod: PaymentMethod;\r\n @ViewChild(AddAddressComponent, { static: false }) addressChild;\r\n PaymentMethodType = PaymentMethodType;\r\n constructor(\r\n private router: Router,\r\n private paymentService: PaymentService,\r\n private addressService: AddressService,\r\n private dialog: MatDialog\r\n ) {\r\n if (this.router.getCurrentNavigation().extras.state) {\r\n this.editingPaymentMethod = this.router.getCurrentNavigation().extras.state.data.paymentMethod;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onSubmit() {\r\n let paymentMethod : PaymentMethod = new PaymentMethod();\r\n let address = this.addressChild.getAddress();\r\n if (address instanceof Address) {\r\n paymentMethod.paymentMethodId = this.editingPaymentMethod.paymentMethodId;\r\n paymentMethod.address = address;\r\n\r\n if (address !== null) {\r\n this.paymentService.updatePaymentMethod(paymentMethod).subscribe(\r\n (data) => this.popScreen(),\r\n (err) => {\r\n let dialogData = new DialogData();\r\n dialogData.message = err;\r\n dialogData.type = DialogType.Alert;\r\n let dialogRef = this.dialog.open(DialogComponent, {\r\n data: dialogData,\r\n });\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n toggleAddAddress() {\r\n this.addAddress = !this.addAddress;\r\n }\r\n\r\n removeAllSpaces(str: string): string {\r\n return str.replace(/\\s/g, \"\");\r\n }\r\n\r\n popScreen(event?) {\r\n if(event) {\r\n event.preventDefault();\r\n }\r\n let url = this.router.url.split(\"/\");\r\n url.pop();\r\n this.router.navigate(url);\r\n }\r\n\r\n}\r\n","export default \".errorImg{\\r\\n margin: 20px auto;\\r\\n width: 200px;\\r\\n}\\r\\n\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvZXJyb3IvZXJyb3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlCQUFpQjtFQUNqQixZQUFZO0FBQ2QiLCJmaWxlIjoic3JjL2FwcC9wYWdlcy9lcnJvci9lcnJvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmVycm9ySW1ne1xyXG4gIG1hcmdpbjogMjBweCBhdXRvO1xyXG4gIHdpZHRoOiAyMDBweDtcclxufVxyXG5cclxuIl19 */\"","import { Component, OnInit } from \"@angular/core\";\r\nimport { BCBSLA, VANTAGE } from 'src/app/CommonModule/constants';\r\nimport { environment } from \"src/environments/environment\";\r\n\r\n@Component({\r\n selector: \"app-error\",\r\n templateUrl: \"./error.component.html\",\r\n styleUrls: [\"./error.component.css\"],\r\n})\r\nexport class ErrorComponent implements OnInit {\r\n imgUrl: string;\r\n altText: string;\r\n constructor() {\r\n if (environment.organization === VANTAGE) {\r\n this.imgUrl = \"../../../assets/logos/VantageLogo_Blue.svg\";\r\n this.altText = \"Vantage Logo\";\r\n } else if(environment.organization === BCBSLA) {\r\n this.imgUrl = \"../../../assets/logos/BCBSLALogo_Blue.svg\";\r\n this.altText = \"BCBSLA Logo\";\r\n }\r\n }\r\n\r\n ngOnInit() {}\r\n}\r\n","export default \".demo-form {\\n margin: 0px auto;\\n width: 100%;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n}\\n\\n.mainText {\\n margin: 0px auto;\\n width: 80%;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n}\\n\\n.demoFields {\\n padding-top: 10px;\\n}\\n\\n.address {\\n width: 80%;\\n margin: 10px auto 15px auto;\\n display: block;\\n}\\n\\n.mat-stroked-button:not([disabled]) {\\n border-color: #f44336 !important;\\n}\\n\\n.secure {\\n font-size: 20px;\\n}\\n\\n.amount {\\n float: right;\\n}\\n\\n.check-icon {\\n color: green;\\n}\\n\\n.cross-icon {\\n color: red;\\n}\\n\\n.icon {\\n font-size: 100px;\\n width: 100px;\\n height: 50px;\\n margin: 200px auto 60px auto;\\n display: block;\\n}\\n\\n.spinner {\\n background-color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.spinner .centered {\\n position: fixed;\\n top: 50%;\\n left: 50%;\\n /* bring your own prefixes */\\n -ms-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvaGl4LXJlZGlyZWN0L0M6XFxVc2Vyc1xcdmRoYWthbFxcc291cmNlXFxyZXBvc1xcdmFudGFnZS1wYXltZW50LXBvcnRhbFxcVmFudGFnZVBheW1lbnRDb3JlQW5ndWxhclxcQ2xpZW50QXBwL3NyY1xcYXBwXFxwYWdlc1xcaGl4LXJlZGlyZWN0XFxoaXgtcmVkaXJlY3QuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3BhZ2VzL2hpeC1yZWRpcmVjdC9oaXgtcmVkaXJlY3QuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSwwQkFBQTtNQUFBLHNCQUFBO0FDQ0Y7O0FERUE7RUFDRSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSwwQkFBQTtNQUFBLHNCQUFBO0FDQ0Y7O0FERUE7RUFDRSxpQkFBQTtBQ0NGOztBREVBO0VBQ0UsVUFBQTtFQUNBLDJCQUFBO0VBQ0EsY0FBQTtBQ0NGOztBREVBO0VBQ0UsZ0NBQUE7QUNDRjs7QURFQTtFQUNFLGVBQUE7QUNDRjs7QURFQTtFQUNFLFlBQUE7QUNDRjs7QURFQTtFQUNFLFlBQUE7QUNDRjs7QURFQTtFQUNFLFVBQUE7QUNDRjs7QURFQTtFQUNFLGdCQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSw0QkFBQTtFQUNBLGNBQUE7QUNDRjs7QURFQTtFQUNFLDBDQUFBO0FDQ0Y7O0FEQUU7RUFDRSxlQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSw0QkFBQTtFQUNBLG9DQUFBO01BQUEsZ0NBQUE7QUNFSiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL2hpeC1yZWRpcmVjdC9oaXgtcmVkaXJlY3QuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZGVtby1mb3JtIHtcclxuICBtYXJnaW46IDBweCBhdXRvO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxufVxyXG5cclxuLm1haW5UZXh0IHtcclxuICBtYXJnaW46IDBweCBhdXRvO1xyXG4gIHdpZHRoOiA4MCU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG59XHJcblxyXG4uZGVtb0ZpZWxkc3tcclxuICBwYWRkaW5nLXRvcDogMTBweDtcclxufVxyXG5cclxuLmFkZHJlc3Mge1xyXG4gIHdpZHRoOiA4MCU7XHJcbiAgbWFyZ2luOiAxMHB4IGF1dG8gMTVweCBhdXRvO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4ubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbZGlzYWJsZWRdKSB7XHJcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjQ0LCA2NywgNTQpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5zZWN1cmUge1xyXG4gIGZvbnQtc2l6ZTogMjBweDtcclxufVxyXG5cclxuLmFtb3VudCB7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG59XHJcblxyXG4uY2hlY2staWNvbiB7XHJcbiAgY29sb3I6IGdyZWVuO1xyXG59XHJcblxyXG4uY3Jvc3MtaWNvbiB7XHJcbiAgY29sb3I6IHJlZDtcclxufVxyXG5cclxuLmljb24ge1xyXG4gIGZvbnQtc2l6ZTogMTAwcHg7XHJcbiAgd2lkdGg6IDEwMHB4O1xyXG4gIGhlaWdodDogNTBweDtcclxuICBtYXJnaW46IDIwMHB4IGF1dG8gNjBweCBhdXRvO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4uc3Bpbm5lciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xyXG4gIC5jZW50ZXJlZCB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIC8qIGJyaW5nIHlvdXIgb3duIHByZWZpeGVzICovXHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICB9XHJcbn1cclxuIiwiLmRlbW8tZm9ybSB7XG4gIG1hcmdpbjogMHB4IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ubWFpblRleHQge1xuICBtYXJnaW46IDBweCBhdXRvO1xuICB3aWR0aDogODAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZGVtb0ZpZWxkcyB7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xufVxuXG4uYWRkcmVzcyB7XG4gIHdpZHRoOiA4MCU7XG4gIG1hcmdpbjogMTBweCBhdXRvIDE1cHggYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcbiAgYm9yZGVyLWNvbG9yOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7XG59XG5cbi5zZWN1cmUge1xuICBmb250LXNpemU6IDIwcHg7XG59XG5cbi5hbW91bnQge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5jaGVjay1pY29uIHtcbiAgY29sb3I6IGdyZWVuO1xufVxuXG4uY3Jvc3MtaWNvbiB7XG4gIGNvbG9yOiByZWQ7XG59XG5cbi5pY29uIHtcbiAgZm9udC1zaXplOiAxMDBweDtcbiAgd2lkdGg6IDEwMHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIG1hcmdpbjogMjAwcHggYXV0byA2MHB4IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uc3Bpbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi5zcGlubmVyIC5jZW50ZXJlZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgLyogYnJpbmcgeW91ciBvd24gcHJlZml4ZXMgKi9cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59Il19 */\"","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { EmbeddableWidget } from \"@acpaas-ui/ngx-embeddable-widgets\";\r\nimport { ZoidHelperService } from \"src/app/services/ZoidHelper/zoid-helper.service\";\r\nimport { Address } from \"src/app/models/address.model\";\r\nimport { AddressService } from \"src/app/services/Address/address.service\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport { CreditCardComponent } from \"../credit-card/credit-card.component\";\r\nimport { AddAddressComponent } from \"src/app/components/add-address/add-address.component\";\r\nimport { PaymentMethod } from \"src/app/models/payment-method.model\";\r\nimport { HixCustomer } from \"src/app/models/hixCustomer.model\";\r\nimport { Customer, CustomerType } from \"src/app/models/customer.model\";\r\nimport { CustomerService } from \"src/app/services/Customer/customer.service\";\r\nimport { TransactionService } from \"src/app/services/Transaction/transaction.service\";\r\nimport { PaymentTypes } from \"src/app/models/transaction.model\";\r\nimport { HixTransaction } from \"src/app/models/hixTransaction.model\";\r\nimport {\r\n DialogData,\r\n DialogType,\r\n DialogComponent,\r\n} from \"src/app/components/dialog/dialog.component\";\r\nimport { MatDialog } from \"@angular/material\";\r\nimport { LoaderService } from \"src/app/services/Loader/loader.service\";\r\nimport { Observable, BehaviorSubject } from \"rxjs\";\r\nimport { finalize } from \"rxjs/operators\";\r\nimport { PaymentService } from \"src/app/services/Payment/payment.service\";\r\nimport { FormBuilder, FormControl, Validators } from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: \"app-hix-redirect\",\r\n templateUrl: \"./hix-redirect.component.html\",\r\n styleUrls: [\"./hix-redirect.component.scss\"],\r\n})\r\n@EmbeddableWidget(\"../../assets/widget.json\")\r\nexport class HixRedirectComponent implements OnInit {\r\n public remittanceAccountId$;\r\n public remittanceAccountValue$;\r\n public remittanceAccountType$;\r\n public demoForm;\r\n isLoading: boolean = false;\r\n isDone: boolean = false;\r\n recordExists: boolean = false;\r\n error: boolean = false;\r\n hixCustomer: HixCustomer;\r\n paymentTotal$;\r\n paymentType$;\r\n public phoneMask=\"(000) 000-000\"\r\n @ViewChild(AddAddressComponent, { static: false }) addressChild;\r\n @ViewChild(CreditCardComponent, { static: false }) creditCardChild;\r\n constructor(\r\n public dialog: MatDialog,\r\n private zoidHelperService: ZoidHelperService,\r\n private addressService: AddressService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private customerService: CustomerService,\r\n private transactionService: TransactionService,\r\n private paymentService: PaymentService,\r\n private loaderService: LoaderService,\r\n private formBuilder: FormBuilder,\r\n ) {\r\n\r\n this.hixCustomer = new HixCustomer();\r\n this.paymentTotal$ = this.zoidHelperService.paymentTotal$;\r\n this.hixCustomer.customer = new Customer();\r\n this.hixCustomer.paymentMethod = new PaymentMethod();\r\n this.paymentType$ = this.zoidHelperService.paymentType$;\r\n this.hixCustomer.googleRecaptchaResponse = null;\r\n this.remittanceAccountId$ = this.zoidHelperService.remmitanceAccountId$;\r\n this.remittanceAccountValue$ = this.zoidHelperService.remmitanceAccountValue$;\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.demoForm = this.formBuilder.group({\r\n dob: new FormControl(\"\", [Validators.required]),\r\n ssn: new FormControl(\"\", [ Validators.minLength(9),Validators.maxLength(9)]),\r\n phone: new FormControl(\"\", [Validators.minLength(12),Validators.maxLength(12),Validators.pattern(\"[0-9]+-[0-9]+-[0-9]+\")]),\r\n });\r\n }\r\n\r\n public auiOnWidgetInit(props) {\r\n console.log(\"record exists: \",this.recordExists)\r\n if(this.router.url.split(\"?\")[0] === \"/hix-redirect\") {\r\n console.log(\"here\")\r\n this.route.queryParams.subscribe((queryParams) => {\r\n if (queryParams.CustomerId) {\r\n console.log(\"here2\")\r\n let customer: Customer = new Customer();\r\n customer.fullName = queryParams.fullName;\r\n customer.email = queryParams.email;\r\n customer.type = CustomerType.Member;\r\n customer.customerID = queryParams.CustomerId;\r\n this.customerService.customer.next(customer);\r\n this.hixCustomer.customer = customer;\r\n this.hixCustomer.remittanceAccount = queryParams.remittanceAccountValue;\r\n this.hixCustomer.paymentTotal = queryParams.price;\r\n this.hixCustomer.exchangeId = queryParams.exchangeId;\r\n this.hixCustomer.fname = queryParams.fname;\r\n this.hixCustomer.lname = queryParams.lname;\r\n this.hixCustomer.remittanceGuid = queryParams.remittanceGuid;\r\n this.hixCustomer.confirmationNumber = queryParams.confirmationNumber;\r\n this.hixCustomer.subscriberId = queryParams.subscriberId;\r\n this.checkExists(this.hixCustomer.subscriberId, this.hixCustomer.exchangeId)\r\n } else {\r\n console.log(\"else\")\r\n // this.router.navigateByUrl(\"/error\");\r\n }\r\n\r\n if (queryParams.RemittanceAccountId) {\r\n this.remittanceAccountId$.next(queryParams.RemittanceAccountId);\r\n }\r\n\r\n if (!isNaN(queryParams.PaymentType) && queryParams.PaymentType == PaymentTypes.RecurringPayment.toString()) {\r\n this.loaderService.showLoadingSpinner();\r\n this.zoidHelperService.paymentType$.next(PaymentTypes.RecurringPayment);\r\n this.loaderService.hideLoadingSpinner();\r\n }\r\n\r\n if (queryParams.price) {\r\n this.paymentTotal$.next(parseFloat(queryParams.price));\r\n }\r\n\r\n });\r\n }\r\n }\r\n openRecaptchaAlert() {\r\n let dialogData = new DialogData();\r\n dialogData.message =\r\n \"Please complete reCaptcha challange before submitting!\";\r\n dialogData.type = DialogType.Alert;\r\n let dialogRef = this.dialog.open(DialogComponent, {\r\n data: dialogData,\r\n });\r\n }\r\n resolved(captchaResponse: string, res) {\r\n this.hixCustomer.googleRecaptchaResponse = captchaResponse;\r\n }\r\n onSubmit() {\r\n let address = this.addressChild.getAddress();\r\n let paymentMethod = this.creditCardChild.getCreditCard();\r\n this.hixCustomer.SSN = this.demoForm.get('ssn').value\r\n this.hixCustomer.DOB = this.demoForm.get('dob').value\r\n this.hixCustomer.phone = this.demoForm.get('phone').value\r\n console.log(\"phon: \",this.hixCustomer.phone);\r\n console.log(\"phonics: \",this.hixCustomer.phone.replace(/-/ig,\"\"));\r\n this.hixCustomer.phone = this.hixCustomer.phone.replace(/-/ig,\"\")\r\n if (address instanceof Address && paymentMethod instanceof PaymentMethod) {\r\n if (this.hixCustomer.googleRecaptchaResponse === null) {\r\n this.openRecaptchaAlert();\r\n return;\r\n }\r\n this.loaderService.showLoadingSpinner();\r\n paymentMethod.address = address;\r\n this.hixCustomer.customer.fullName = paymentMethod.nameOnAccount;\r\n this.hixCustomer.paymentMethod = paymentMethod;\r\n this.hixCustomer.paymentType = this.zoidHelperService.paymentType$.value;\r\n this.transactionService.submitHix(this.hixCustomer).subscribe(\r\n (data) => {\r\n if (\r\n this.zoidHelperService.paymentType$.value ===\r\n PaymentTypes.RecurringPayment\r\n ) {\r\n let hixTransaction = new HixTransaction();\r\n hixTransaction.fullName = this.hixCustomer.customer.fullName;\r\n hixTransaction.customerId = data.customerId;\r\n hixTransaction.recurringPaymentId = data.recurringPaymentId;\r\n hixTransaction.applicationConfirmationNumber = this.hixCustomer.remittanceAccount;\r\n this.zoidHelperService.onPaymentReceivedFunc(hixTransaction);\r\n } else {\r\n this.zoidHelperService.onPaymentReceivedFunc(data.transactionId);\r\n }\r\n this.loaderService.hideLoadingSpinner();\r\n this.isDone = true;\r\n setTimeout(() => {\r\n this.zoidHelperService.closeFunc();\r\n }, 3000);\r\n },\r\n (err) => {\r\n this.isLoading = false;\r\n this.error = true;\r\n }\r\n );\r\n }\r\n }\r\n\r\n checkExists(subscriberId: string, exchangeId: string){\r\n var existingPaymentObj = new ExistingPaymentCheckObj(subscriberId, exchangeId)\r\n this.transactionService.checkExists(existingPaymentObj).subscribe(answer => {\r\n if(answer){\r\n console.log(\"check existing: \",answer)\r\n if(answer === true){\r\n \r\n this.recordExists = true\r\n } else {\r\n this.recordExists = false\r\n }\r\n }\r\n })\r\n }\r\n\r\n closeWindow() {\r\n this.zoidHelperService.closeFunc();\r\n }\r\n}\r\n\r\nexport class ExistingPaymentCheckObj{\r\n subscriberIdentifier: string\r\n exchangeId: string\r\n constructor(subId: string, exchId: string){\r\n this.subscriberIdentifier = subId\r\n this.exchangeId = exchId\r\n }\r\n}","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL2hvbWUvaG9tZS5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.css']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL2xvZ291dC9sb2dvdXQuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-logout',\r\n templateUrl: './logout.component.html',\r\n styleUrls: ['./logout.component.css']\r\n})\r\nexport class LogoutComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","export default \"p.mat-subheading-2.header {\\n margin: 20px 0px;\\n text-align: center;\\n}\\n\\n.listtile {\\n padding: 10px;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n justify-items: center;\\n -ms-flex-align: center;\\n align-items: center;\\n}\\n\\n.check-icon {\\n color: green;\\n font-size: 100px;\\n width: 100px;\\n height: 50px;\\n margin: 200px auto 60px auto;\\n display: block;\\n}\\n\\n.cross-icon {\\n color: red;\\n font-size: 100px;\\n width: 100px;\\n height: 50px;\\n margin: 200px auto 60px auto;\\n display: block;\\n}\\n\\n.spinner {\\n background-color: rgba(255, 255, 255, 0.7);\\n position: absolute;\\n height: 100%;\\n z-index: 10000;\\n width: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvbWVtYmVyLXN0b3AtcmVjdXJyaW5nLXBheW1lbnQvQzpcXFVzZXJzXFx2ZGhha2FsXFxzb3VyY2VcXHJlcG9zXFx2YW50YWdlLXBheW1lbnQtcG9ydGFsXFxWYW50YWdlUGF5bWVudENvcmVBbmd1bGFyXFxDbGllbnRBcHAvc3JjXFxhcHBcXHBhZ2VzXFxtZW1iZXItc3RvcC1yZWN1cnJpbmctcGF5bWVudFxcbWVtYmVyLXN0b3AtcmVjdXJyaW5nLXBheW1lbnQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3BhZ2VzL21lbWJlci1zdG9wLXJlY3VycmluZy1wYXltZW50L21lbWJlci1zdG9wLXJlY3VycmluZy1wYXltZW50LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQUE7RUFDQSxrQkFBQTtBQ0NGOztBREVBO0VBQ0UsYUFBQTtFQUNBLG9CQUFBO0VBQUEsYUFBQTtFQUNBLDBCQUFBO01BQUEsc0JBQUE7RUFDQSxxQkFBQTtFQUNBLHNCQUFBO01BQUEsbUJBQUE7QUNDRjs7QURFQTtFQUNFLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0VBQ0EsNEJBQUE7RUFDQSxjQUFBO0FDQ0Y7O0FERUE7RUFDRSxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLDRCQUFBO0VBQ0EsY0FBQTtBQ0NGOztBREVBO0VBQ0UsMENBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxjQUFBO0VBQ0EsV0FBQTtBQ0NGIiwiZmlsZSI6InNyYy9hcHAvcGFnZXMvbWVtYmVyLXN0b3AtcmVjdXJyaW5nLXBheW1lbnQvbWVtYmVyLXN0b3AtcmVjdXJyaW5nLXBheW1lbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJwLm1hdC1zdWJoZWFkaW5nLTIuaGVhZGVyIHtcclxuICBtYXJnaW46IDIwcHggMHB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLmxpc3R0aWxlIHtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLmNoZWNrLWljb24ge1xyXG4gIGNvbG9yOiBncmVlbjtcclxuICBmb250LXNpemU6IDEwMHB4O1xyXG4gIHdpZHRoOiAxMDBweDtcclxuICBoZWlnaHQ6IDUwcHg7XHJcbiAgbWFyZ2luOiAyMDBweCBhdXRvIDYwcHggYXV0bztcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLmNyb3NzLWljb24ge1xyXG4gIGNvbG9yOiByZWQ7XHJcbiAgZm9udC1zaXplOiAxMDBweDtcclxuICB3aWR0aDogMTAwcHg7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIG1hcmdpbjogMjAwcHggYXV0byA2MHB4IGF1dG87XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5zcGlubmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB6LWluZGV4OiAxMDAwMDtcclxuICB3aWR0aDogMTAwJTtcclxufSIsInAubWF0LXN1YmhlYWRpbmctMi5oZWFkZXIge1xuICBtYXJnaW46IDIwcHggMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5saXN0dGlsZSB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmNoZWNrLWljb24ge1xuICBjb2xvcjogZ3JlZW47XG4gIGZvbnQtc2l6ZTogMTAwcHg7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBtYXJnaW46IDIwMHB4IGF1dG8gNjBweCBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmNyb3NzLWljb24ge1xuICBjb2xvcjogcmVkO1xuICBmb250LXNpemU6IDEwMHB4O1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgbWFyZ2luOiAyMDBweCBhdXRvIDYwcHggYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5zcGlubmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTAwMDA7XG4gIHdpZHRoOiAxMDAlO1xufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { PaymentMethod } from \"src/app/models/payment-method.model\";\r\nimport { TransactionService } from \"src/app/services/Transaction/transaction.service\";\r\nimport { Transaction } from \"src/app/models/transaction.model\";\r\nimport { ZoidHelperService } from \"src/app/services/ZoidHelper/zoid-helper.service\";\r\nimport { LoaderService } from \"src/app/services/Loader/loader.service\";\r\nimport { CustomerService } from \"src/app/services/Customer/customer.service\";\r\nimport {\r\n DialogComponent,\r\n DialogData,\r\n DialogType,\r\n} from \"src/app/components/dialog/dialog.component\";\r\nimport { MatDialog } from \"@angular/material\";\r\n\r\n@Component({\r\n selector: 'app-member-stop-recurring-payment',\r\n templateUrl: './member-stop-recurring-payment.component.html',\r\n styleUrls: ['./member-stop-recurring-payment.component.scss']\r\n})\r\nexport class MemberStopRecurringPaymentComponent implements OnInit {\r\n public isDone = false;\r\n public error = false;\r\n public infoText: string;\r\n public submitButtonName = \"Cancel Recurring Payments\";\r\n public remittanceAccountValue$;\r\n public remittanceAccountId$;\r\n constructor(\r\n private transactionService: TransactionService,\r\n private zoidHelperService: ZoidHelperService,\r\n private loaderService: LoaderService,\r\n private customerService: CustomerService,\r\n public dialog: MatDialog,\r\n ) {\r\n this.remittanceAccountId$ = this.zoidHelperService.remmitanceAccountId$;\r\n this.remittanceAccountValue$ = this.zoidHelperService.remmitanceAccountValue$;\r\n }\r\n\r\n ngOnInit() {\r\n this.infoText = \"You're about to cancel your payment\";\r\n this.getRecurringPayment();\r\n }\r\n\r\n getRecurringPayment(){\r\n if(!this.transactionService.isEditingTransaction){\r\n this.transactionService\r\n .checkRecurringPayments(this.customerService.customer.getValue().customerID,this.remittanceAccountValue$.getValue(),1)\r\n .subscribe(\r\n (data) => this.transactionService.editingTransaction.next(data)\r\n )\r\n } else {\r\n console.log(this.transactionService.editingTransaction.getValue());\r\n }\r\n }\r\n\r\n openConfirmationDialog(){\r\n let dialogData = new DialogData();\r\n dialogData.message = \"Are you really sure you want to cancel your recurring payment\";\r\n dialogData.type = DialogType.Confirmation;\r\n let dialogRef = this.dialog.open(DialogComponent, {\r\n data: dialogData,\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result === \"true\") {\r\n this.transactionService.editingTransaction.subscribe(\r\n t => {\r\n console.log(t);\r\n this.cancelRecurringPayment(t);\r\n },\r\n err => console.log(err)\r\n )\r\n }\r\n });\r\n }\r\n\r\n cancelRecurringPayment(rpTransaction: Transaction){\r\n this.transactionService.cancelRecurringPayment(rpTransaction)\r\n .subscribe(\r\n data => {\r\n this.loaderService.hideLoadingSpinner();\r\n this.infoText = \"Your recurring payment has been successfully cancelled. This window will now close.\";\r\n this.zoidHelperService.onPaymentReceivedFunc(data);\r\n setTimeout(() => {\r\n this.zoidHelperService.closeFunc();\r\n }, 2000);\r\n },\r\n (err) => {\r\n console.log(\"callbackerror\");\r\n this.loaderService.hideLoadingSpinner();\r\n this.error = true;\r\n }\r\n )\r\n }\r\n}\r\n","export default \".mainText {\\n margin: 0px auto;\\n width: 80%;\\n}\\n\\n.address {\\n width: 80%;\\n margin: 10px auto 15px auto;\\n display: block;\\n}\\n\\n.mat-stroked-button:not([disabled]) {\\n border-color: #f44336 !important;\\n}\\n\\n.secure {\\n font-size: 20px;\\n}\\n\\n.amount {\\n float: right;\\n}\\n\\n.check-icon {\\n color: green;\\n}\\n\\n.cross-icon {\\n color: red;\\n}\\n\\n.icon {\\n font-size: 100px;\\n width: 100px;\\n height: 50px;\\n margin: 200px auto 60px auto;\\n display: block;\\n}\\n\\n.spinner {\\n background-color: rgba(255, 255, 255, 0.7);\\n position: absolute;\\n height: 100%;\\n z-index: 10000;\\n width: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvb25lLXRpbWUtcGF5bWVudC9DOlxcVXNlcnNcXHZkaGFrYWxcXHNvdXJjZVxccmVwb3NcXHZhbnRhZ2UtcGF5bWVudC1wb3J0YWxcXFZhbnRhZ2VQYXltZW50Q29yZUFuZ3VsYXJcXENsaWVudEFwcC9zcmNcXGFwcFxccGFnZXNcXG9uZS10aW1lLXBheW1lbnRcXG9uZS10aW1lLXBheW1lbnQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3BhZ2VzL29uZS10aW1lLXBheW1lbnQvb25lLXRpbWUtcGF5bWVudC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGdCQUFBO0VBQ0EsVUFBQTtBQ0NGOztBREVBO0VBQ0UsVUFBQTtFQUNBLDJCQUFBO0VBQ0EsY0FBQTtBQ0NGOztBREVBO0VBQ0UsZ0NBQUE7QUNDRjs7QURFQTtFQUNFLGVBQUE7QUNDRjs7QURFQTtFQUNFLFlBQUE7QUNDRjs7QURFQTtFQUNFLFlBQUE7QUNDRjs7QURFQTtFQUNFLFVBQUE7QUNDRjs7QURFQTtFQUNFLGdCQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSw0QkFBQTtFQUNBLGNBQUE7QUNDRjs7QURFQTtFQUNFLDBDQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtFQUNBLFdBQUE7QUNDRiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL29uZS10aW1lLXBheW1lbnQvb25lLXRpbWUtcGF5bWVudC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYWluVGV4dCB7XHJcbiAgbWFyZ2luOiAwcHggYXV0bztcclxuICB3aWR0aDogODAlO1xyXG59XHJcblxyXG4uYWRkcmVzcyB7XHJcbiAgd2lkdGg6IDgwJTtcclxuICBtYXJnaW46IDEwcHggYXV0byAxNXB4IGF1dG87XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcclxuICBib3JkZXItY29sb3I6IHJnYigyNDQsIDY3LCA1NCkgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnNlY3VyZSB7XHJcbiAgZm9udC1zaXplOiAyMHB4O1xyXG59XHJcblxyXG4uYW1vdW50IHtcclxuICBmbG9hdDogcmlnaHQ7XHJcbn1cclxuXHJcbi5jaGVjay1pY29uIHtcclxuICBjb2xvcjogZ3JlZW47XHJcbn1cclxuXHJcbi5jcm9zcy1pY29uIHtcclxuICBjb2xvcjogcmVkO1xyXG59XHJcblxyXG4uaWNvbiB7XHJcbiAgZm9udC1zaXplOiAxMDBweDtcclxuICB3aWR0aDogMTAwcHg7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIG1hcmdpbjogMjAwcHggYXV0byA2MHB4IGF1dG87XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5zcGlubmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB6LWluZGV4OiAxMDAwMDtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG4iLCIubWFpblRleHQge1xuICBtYXJnaW46IDBweCBhdXRvO1xuICB3aWR0aDogODAlO1xufVxuXG4uYWRkcmVzcyB7XG4gIHdpZHRoOiA4MCU7XG4gIG1hcmdpbjogMTBweCBhdXRvIDE1cHggYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcbiAgYm9yZGVyLWNvbG9yOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7XG59XG5cbi5zZWN1cmUge1xuICBmb250LXNpemU6IDIwcHg7XG59XG5cbi5hbW91bnQge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5jaGVjay1pY29uIHtcbiAgY29sb3I6IGdyZWVuO1xufVxuXG4uY3Jvc3MtaWNvbiB7XG4gIGNvbG9yOiByZWQ7XG59XG5cbi5pY29uIHtcbiAgZm9udC1zaXplOiAxMDBweDtcbiAgd2lkdGg6IDEwMHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIG1hcmdpbjogMjAwcHggYXV0byA2MHB4IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uc3Bpbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDEwMDAwO1xuICB3aWR0aDogMTAwJTtcbn0iXX0= */\"","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { EmbeddableWidget } from \"@acpaas-ui/ngx-embeddable-widgets\";\r\nimport { ZoidHelperService } from \"src/app/services/ZoidHelper/zoid-helper.service\";\r\nimport { Address } from \"src/app/models/address.model\";\r\nimport { AddressService } from \"src/app/services/Address/address.service\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport { CreditCardComponent } from \"../credit-card/credit-card.component\";\r\nimport { AddAddressComponent } from \"src/app/components/add-address/add-address.component\";\r\nimport { PaymentMethod } from \"src/app/models/payment-method.model\";\r\nimport { OtpCustomer } from \"src/app/models/otpCustomer.model\";\r\nimport { Customer, CustomerType } from \"src/app/models/customer.model\";\r\nimport { CustomerService } from \"src/app/services/Customer/customer.service\";\r\nimport { TransactionService } from \"src/app/services/Transaction/transaction.service\";\r\nimport { PaymentTypes } from \"src/app/models/transaction.model\";\r\nimport { OtpTransaction } from \"src/app/models/otpTransaction.model\";\r\nimport {\r\n DialogData,\r\n DialogType,\r\n DialogComponent,\r\n} from \"src/app/components/dialog/dialog.component\";\r\nimport { MatDialog } from \"@angular/material\";\r\nimport { LoaderService } from \"src/app/services/Loader/loader.service\";\r\nimport { Observable, BehaviorSubject } from \"rxjs\";\r\nimport { finalize } from \"rxjs/operators\";\r\nimport { PaymentService } from \"src/app/services/Payment/payment.service\";\r\n\r\n@Component({\r\n selector: \"app-one-time-payment\",\r\n templateUrl: \"./one-time-payment.component.html\",\r\n styleUrls: [\"./one-time-payment.component.scss\"],\r\n})\r\n@EmbeddableWidget(\"../../assets/widget.json\")\r\nexport class OneTimePaymentComponent implements OnInit {\r\n public remittanceAccountId$;\r\n public remittanceAccountValue$;\r\n public remittanceAccountType$;\r\n \r\n isLoading: boolean = false;\r\n isDone: boolean = false;\r\n error: boolean = false;\r\n otpCustomer: OtpCustomer = new OtpCustomer();\r\n paymentTotal$;\r\n paymentType$;\r\n\r\n @ViewChild(AddAddressComponent, { static: false }) addressChild;\r\n @ViewChild(CreditCardComponent, { static: false }) creditCardChild;\r\n constructor(\r\n public dialog: MatDialog,\r\n private zoidHelperService: ZoidHelperService,\r\n private addressService: AddressService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private customerService: CustomerService,\r\n private transactionService: TransactionService,\r\n private paymentService: PaymentService,\r\n private loaderService: LoaderService,\r\n ) {\r\n this.paymentTotal$ = this.zoidHelperService.paymentTotal$;\r\n this.otpCustomer.customer = new Customer();\r\n this.otpCustomer.paymentMethod = new PaymentMethod();\r\n this.paymentType$ = this.zoidHelperService.paymentType$;\r\n this.otpCustomer.googleRecaptchaResponse = null;\r\n this.remittanceAccountId$ = this.zoidHelperService.remmitanceAccountId$;\r\n this.remittanceAccountValue$ = this.zoidHelperService.remmitanceAccountValue$;\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n public auiOnWidgetInit(props) {\r\n if (props) {\r\n // this.name = props.name;\r\n this.zoidHelperService.paymentTotal$.next(props.price);\r\n this.zoidHelperService.onPaymentReceivedFunc = props.onPaymentReceived;\r\n this.zoidHelperService.closeFunc = props.close;\r\n\r\n if (!isNaN(props.paymentType)) {\r\n this.zoidHelperService.paymentType$.next(props.paymentType);\r\n } else {\r\n this.zoidHelperService.paymentType$.next(PaymentTypes.OneTimePayment);\r\n }\r\n if (props.otpUserData) {\r\n console.log(props.otpUserData)\r\n let customer: Customer = new Customer();\r\n customer.fullName = props.otpUserData.fullName;\r\n customer.email = props.otpUserData.email;\r\n customer.type = CustomerType.Member;\r\n customer.program = props.otpUserData.program\r\n this.customerService.customer.next(customer);\r\n this.otpCustomer.customer = customer;\r\n this.otpCustomer.remittanceAccount = String(\r\n props.otpUserData.applicationConfirmationNumber\r\n );\r\n this.otpCustomer.paymentTotal = props.price;\r\n } else {\r\n this.router.navigateByUrl(\"/error\");\r\n }\r\n if (props.address) {\r\n let passedAddress = new Address().deserialize(props.address);\r\n passedAddress.name = props.otpUserData.fullname + \"\\'s Address\";\r\n this.addressService.addresses.next([passedAddress]);\r\n }\r\n\r\n // this.onPaymentReceived = props.onPaymentReceived;\r\n } else if(this.router.url.split(\"?\")[0] === \"/hix-redirect\") {\r\n console.log(\"here\")\r\n this.route.queryParams.subscribe((queryParams) => {\r\n if (queryParams.CustomerId) {\r\n console.log(\"here2\")\r\n let customer: Customer = new Customer();\r\n customer.fullName = queryParams.fullName;\r\n customer.email = queryParams.email;\r\n customer.type = CustomerType.Member;\r\n this.customerService.customer.next(customer);\r\n this.otpCustomer.customer = customer;\r\n this.otpCustomer.remittanceAccount = queryParams.RemittanceAccountValue;\r\n this.otpCustomer.paymentTotal = queryParams.price;\r\n } else {\r\n console.log(\"else\")\r\n // this.router.navigateByUrl(\"/error\");\r\n }\r\n\r\n if (queryParams.RemittanceAccountId) {\r\n this.remittanceAccountId$.next(queryParams.RemittanceAccountId);\r\n }\r\n\r\n if (!isNaN(queryParams.PaymentType) && queryParams.PaymentType == PaymentTypes.RecurringPayment.toString()) {\r\n this.loaderService.showLoadingSpinner();\r\n this.zoidHelperService.paymentType$.next(PaymentTypes.RecurringPayment);\r\n this.loaderService.hideLoadingSpinner();\r\n }\r\n\r\n if (queryParams.price) {\r\n this.paymentTotal$.next(parseFloat(queryParams.price));\r\n }\r\n\r\n });\r\n }\r\n }\r\n openRecaptchaAlert() {\r\n let dialogData = new DialogData();\r\n dialogData.message =\r\n \"Please complete reCaptcha challange before submitting!\";\r\n dialogData.type = DialogType.Alert;\r\n let dialogRef = this.dialog.open(DialogComponent, {\r\n data: dialogData,\r\n });\r\n }\r\n resolved(captchaResponse: string, res) {\r\n this.otpCustomer.googleRecaptchaResponse = captchaResponse;\r\n }\r\n onSubmit() {\r\n let address = this.addressChild.getAddress();\r\n let paymentMethod = this.creditCardChild.getCreditCard();\r\n if (address instanceof Address && paymentMethod instanceof PaymentMethod) {\r\n if (this.otpCustomer.googleRecaptchaResponse === null) {\r\n this.openRecaptchaAlert();\r\n return;\r\n }\r\n this.isLoading = true;\r\n paymentMethod.address = address;\r\n this.otpCustomer.paymentMethod = paymentMethod;\r\n this.otpCustomer.paymentType = this.zoidHelperService.paymentType$.value;\r\n this.transactionService.submitOtp(this.otpCustomer).subscribe(\r\n (data) => {\r\n if (\r\n this.zoidHelperService.paymentType$.value ===\r\n PaymentTypes.RecurringPayment\r\n ) {\r\n let otpTransaction = new OtpTransaction();\r\n otpTransaction.fullName = this.otpCustomer.customer.fullName;\r\n otpTransaction.customerId = data.customerId;\r\n otpTransaction.recurringPaymentId = data.recurringPaymentId;\r\n otpTransaction.applicationConfirmationNumber = this.otpCustomer.remittanceAccount;\r\n this.zoidHelperService.onPaymentReceivedFunc(otpTransaction);\r\n } else {\r\n this.zoidHelperService.onPaymentReceivedFunc(data.transactionId);\r\n }\r\n this.isLoading = false;\r\n this.isDone = true;\r\n setTimeout(() => {\r\n this.zoidHelperService.closeFunc();\r\n }, 3000);\r\n },\r\n (err) => {\r\n this.isLoading = false;\r\n this.error = true;\r\n }\r\n );\r\n }\r\n }\r\n\r\n closeWindow() {\r\n this.zoidHelperService.closeFunc();\r\n }\r\n}\r\n","export default \".demo-form {\\n margin: 0px auto;\\n width: 100%;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n}\\n\\n.mainText {\\n margin: 0px auto;\\n width: 80%;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n}\\n\\n.demoFields {\\n padding-top: 10px;\\n}\\n\\n.address {\\n width: 80%;\\n margin: 10px auto 15px auto;\\n display: block;\\n}\\n\\n.mat-stroked-button:not([disabled]) {\\n border-color: #f44336 !important;\\n}\\n\\n.secure {\\n font-size: 20px;\\n}\\n\\n.amount {\\n float: right;\\n}\\n\\n.check-icon {\\n color: green;\\n}\\n\\n.cross-icon {\\n color: red;\\n}\\n\\n.icon {\\n font-size: 100px;\\n width: 100px;\\n height: 50px;\\n margin: 200px auto 60px auto;\\n display: block;\\n}\\n\\n.spinner {\\n background-color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.spinner .centered {\\n position: fixed;\\n top: 50%;\\n left: 50%;\\n /* bring your own prefixes */\\n -ms-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n}\\n\\n.select-amount {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-pack: space-evenly;\\n justify-content: space-evenly;\\n padding: 10px;\\n}\\n\\n.mat-card {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-align: center;\\n align-items: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n border-radius: 20px;\\n min-height: 100px;\\n min-width: 100px;\\n box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.2);\\n}\\n\\n.mat-card-selected {\\n border: 1px solid #00abff;\\n /* border-radius: 5px; */\\n background-color: #d1f0ff;\\n}\\n\\n.mat-card-recurring {\\n margin: 20px auto;\\n max-width: 200px;\\n}\\n\\n.mat-card-content {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n text-align: center;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvb3Blbi1wYXltZW50L0M6XFxVc2Vyc1xcdmRoYWthbFxcc291cmNlXFxyZXBvc1xcdmFudGFnZS1wYXltZW50LXBvcnRhbFxcVmFudGFnZVBheW1lbnRDb3JlQW5ndWxhclxcQ2xpZW50QXBwL3NyY1xcYXBwXFxwYWdlc1xcb3Blbi1wYXltZW50XFxvcGVuLXBheW1lbnQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3BhZ2VzL29wZW4tcGF5bWVudC9vcGVuLXBheW1lbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSwwQkFBQTtNQUFBLHNCQUFBO0FDQ0Y7O0FERUE7RUFDRSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSwwQkFBQTtNQUFBLHNCQUFBO0FDQ0Y7O0FERUE7RUFDRSxpQkFBQTtBQ0NGOztBREVBO0VBQ0UsVUFBQTtFQUNBLDJCQUFBO0VBQ0EsY0FBQTtBQ0NGOztBREVBO0VBQ0UsZ0NBQUE7QUNDRjs7QURFQTtFQUNFLGVBQUE7QUNDRjs7QURFQTtFQUNFLFlBQUE7QUNDRjs7QURFQTtFQUNFLFlBQUE7QUNDRjs7QURFQTtFQUNFLFVBQUE7QUNDRjs7QURFQTtFQUNFLGdCQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSw0QkFBQTtFQUNBLGNBQUE7QUNDRjs7QURFQTtFQUNFLDBDQUFBO0FDQ0Y7O0FEQUU7RUFDRSxlQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSw0QkFBQTtFQUNBLG9DQUFBO01BQUEsZ0NBQUE7QUNFSjs7QURFQTtFQUNFLG9CQUFBO0VBQUEsYUFBQTtFQUNBLDJCQUFBO01BQUEsNkJBQUE7RUFDQSxhQUFBO0FDQ0Y7O0FERUE7RUFDRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSxzQkFBQTtNQUFBLG1CQUFBO0VBQ0EscUJBQUE7TUFBQSx1QkFBQTtFQUNBLG1CQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLDBDQUFBO0FDQ0Y7O0FERUE7RUFDRSx5QkFBQTtFQUNBLHdCQUFBO0VBQ0EseUJBQUE7QUNDRjs7QURFQTtFQUNFLGlCQUFBO0VBQ0EsZ0JBQUE7QUNDRjs7QURFQTtFQUNFLG9CQUFBO0VBQUEsYUFBQTtFQUNBLDBCQUFBO01BQUEsc0JBQUE7RUFDQSxrQkFBQTtBQ0NGIiwiZmlsZSI6InNyYy9hcHAvcGFnZXMvb3Blbi1wYXltZW50L29wZW4tcGF5bWVudC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5kZW1vLWZvcm0ge1xyXG4gIG1hcmdpbjogMHB4IGF1dG87XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG59XHJcblxyXG4ubWFpblRleHQge1xyXG4gIG1hcmdpbjogMHB4IGF1dG87XHJcbiAgd2lkdGg6IDgwJTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuXHJcbi5kZW1vRmllbGRze1xyXG4gIHBhZGRpbmctdG9wOiAxMHB4O1xyXG59XHJcblxyXG4uYWRkcmVzcyB7XHJcbiAgd2lkdGg6IDgwJTtcclxuICBtYXJnaW46IDEwcHggYXV0byAxNXB4IGF1dG87XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcclxuICBib3JkZXItY29sb3I6IHJnYigyNDQsIDY3LCA1NCkgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnNlY3VyZSB7XHJcbiAgZm9udC1zaXplOiAyMHB4O1xyXG59XHJcblxyXG4uYW1vdW50IHtcclxuICBmbG9hdDogcmlnaHQ7XHJcbn1cclxuXHJcbi5jaGVjay1pY29uIHtcclxuICBjb2xvcjogZ3JlZW47XHJcbn1cclxuXHJcbi5jcm9zcy1pY29uIHtcclxuICBjb2xvcjogcmVkO1xyXG59XHJcblxyXG4uaWNvbiB7XHJcbiAgZm9udC1zaXplOiAxMDBweDtcclxuICB3aWR0aDogMTAwcHg7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIG1hcmdpbjogMjAwcHggYXV0byA2MHB4IGF1dG87XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5zcGlubmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XHJcbiAgLmNlbnRlcmVkIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgLyogYnJpbmcgeW91ciBvd24gcHJlZml4ZXMgKi9cclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG4gIH1cclxufVxyXG5cclxuLnNlbGVjdC1hbW91bnQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XHJcbiAgcGFkZGluZzogMTBweDtcclxufVxyXG5cclxuLm1hdC1jYXJkIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcclxuICBtaW4taGVpZ2h0OiAxMDBweDtcclxuICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCAwIHJnYmEoMCwgMCwgMCwgMC4yKTtcclxufVxyXG5cclxuLm1hdC1jYXJkLXNlbGVjdGVkIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjMDBhYmZmO1xyXG4gIC8qIGJvcmRlci1yYWRpdXM6IDVweDsgKi9cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDFmMGZmO1xyXG59XHJcblxyXG4ubWF0LWNhcmQtcmVjdXJyaW5nIHtcclxuICBtYXJnaW46IDIwcHggYXV0bztcclxuICBtYXgtd2lkdGg6IDIwMHB4O1xyXG59XHJcblxyXG4ubWF0LWNhcmQtY29udGVudCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG4iLCIuZGVtby1mb3JtIHtcbiAgbWFyZ2luOiAwcHggYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5tYWluVGV4dCB7XG4gIG1hcmdpbjogMHB4IGF1dG87XG4gIHdpZHRoOiA4MCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5kZW1vRmllbGRzIHtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG59XG5cbi5hZGRyZXNzIHtcbiAgd2lkdGg6IDgwJTtcbiAgbWFyZ2luOiAxMHB4IGF1dG8gMTVweCBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSkge1xuICBib3JkZXItY29sb3I6ICNmNDQzMzYgIWltcG9ydGFudDtcbn1cblxuLnNlY3VyZSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cblxuLmFtb3VudCB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLmNoZWNrLWljb24ge1xuICBjb2xvcjogZ3JlZW47XG59XG5cbi5jcm9zcy1pY29uIHtcbiAgY29sb3I6IHJlZDtcbn1cblxuLmljb24ge1xuICBmb250LXNpemU6IDEwMHB4O1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgbWFyZ2luOiAyMDBweCBhdXRvIDYwcHggYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5zcGlubmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnNwaW5uZXIgLmNlbnRlcmVkIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICAvKiBicmluZyB5b3VyIG93biBwcmVmaXhlcyAqL1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLnNlbGVjdC1hbW91bnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuLm1hdC1jYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIG1pbi1oZWlnaHQ6IDEwMHB4O1xuICBtaW4td2lkdGg6IDEwMHB4O1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG5cbi5tYXQtY2FyZC1zZWxlY3RlZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMGFiZmY7XG4gIC8qIGJvcmRlci1yYWRpdXM6IDVweDsgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogI2QxZjBmZjtcbn1cblxuLm1hdC1jYXJkLXJlY3VycmluZyB7XG4gIG1hcmdpbjogMjBweCBhdXRvO1xuICBtYXgtd2lkdGg6IDIwMHB4O1xufVxuXG4ubWF0LWNhcmQtY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn0iXX0= */\"","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { EmbeddableWidget } from \"@acpaas-ui/ngx-embeddable-widgets\";\r\nimport { ZoidHelperService } from \"src/app/services/ZoidHelper/zoid-helper.service\";\r\nimport { Address } from \"src/app/models/address.model\";\r\nimport { AddressService } from \"src/app/services/Address/address.service\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport { CreditCardComponent } from \"../credit-card/credit-card.component\";\r\nimport { AddAddressComponent } from \"src/app/components/add-address/add-address.component\";\r\nimport { PaymentMethod } from \"src/app/models/payment-method.model\";\r\n\r\nimport { Customer, CustomerType } from \"src/app/models/customer.model\";\r\nimport { CustomerService } from \"src/app/services/Customer/customer.service\";\r\nimport { TransactionService } from \"src/app/services/Transaction/transaction.service\";\r\nimport { PaymentTypes } from \"src/app/models/transaction.model\";\r\nimport { HixTransaction } from \"src/app/models/hixTransaction.model\";\r\nimport {\r\n DialogData,\r\n DialogType,\r\n DialogComponent,\r\n} from \"src/app/components/dialog/dialog.component\";\r\nimport { MatDialog } from \"@angular/material\";\r\nimport { LoaderService } from \"src/app/services/Loader/loader.service\";\r\nimport { Observable, BehaviorSubject } from \"rxjs\";\r\nimport { finalize } from \"rxjs/operators\";\r\nimport { PaymentService } from \"src/app/services/Payment/payment.service\";\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { OpenPaymentCustomer } from \"src/app/models/open-payment-customer.model\";\r\n\r\n@Component({\r\n selector: 'app-open-payment',\r\n templateUrl: './open-payment.component.html',\r\n styleUrls: ['./open-payment.component.scss']\r\n})\r\n@EmbeddableWidget(\"../../assets/widget.json\")\r\nexport class OpenPaymentComponent implements OnInit {\r\n public remittanceAccountId$;\r\n public remittanceAccountValue$;\r\n public remittanceAccountType$;\r\n demoForm: FormGroup;\r\n isLoading: boolean = false;\r\n isDone: boolean = false;\r\n error: boolean = false;\r\n openPaymentCustomer: OpenPaymentCustomer;\r\n paymentTotal$;\r\n paymentType$;\r\n amount: FormControl = new FormControl(\"\", [Validators.nullValidator]);\r\n public selectedTotal$: BehaviorSubject;\r\n props;\r\n\r\n @ViewChild(AddAddressComponent, { static: false }) addressChild;\r\n @ViewChild(CreditCardComponent, { static: false }) creditCardChild;\r\n constructor(\r\n public dialog: MatDialog,\r\n private zoidHelperService: ZoidHelperService,\r\n private addressService: AddressService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private customerService: CustomerService,\r\n private transactionService: TransactionService,\r\n private paymentService: PaymentService,\r\n private loaderService: LoaderService,\r\n private formBuilder: FormBuilder,\r\n ) {\r\n this.openPaymentCustomer = new OpenPaymentCustomer();\r\n this.paymentTotal$ = this.zoidHelperService.paymentTotal$;\r\n this.openPaymentCustomer.customer = new Customer();\r\n this.openPaymentCustomer.paymentMethod = new PaymentMethod();\r\n this.paymentType$ = this.zoidHelperService.paymentType$;\r\n this.openPaymentCustomer.googleRecaptchaResponse = null;\r\n this.remittanceAccountId$ = this.zoidHelperService.remmitanceAccountId$;\r\n this.remittanceAccountValue$ = this.zoidHelperService.remmitanceAccountValue$;\r\n this.selectedTotal$ = this.zoidHelperService.selectedTotal$;\r\n }\r\n\r\n ngOnInit() { \r\n this.demoForm = this.formBuilder.group({\r\n firstname: new FormControl(\"\", [Validators.nullValidator]),\r\n lastname: new FormControl(\"\", [Validators.nullValidator]),\r\n dob: new FormControl(\"\", [Validators.nullValidator]),\r\n ssn: new FormControl(\"\", [Validators.nullValidator]),\r\n phone: new FormControl(\"\", [Validators.pattern('/[0-9]+-[0-9]+-[0-9]+/i')]),\r\n email: new FormControl(\"\", [Validators.nullValidator]),\r\n amount: new FormControl(\"\", [Validators.required]),\r\n mbi: new FormControl(\"\",[Validators.nullValidator])\r\n });\r\n console.log(\"init\")\r\n this.amount.valueChanges.subscribe((data) => {\r\n this.selectedTotal$.next(data);\r\n });\r\n }\r\n\r\n public auiOnWidgetInit(props) {\r\n console.log(\"props in: \",props)\r\n if (props) {\r\n console.log(\"props: \",props)\r\n this.props = props;\r\n this.paymentTotal$.next(props.price);\r\n this.zoidHelperService.onPaymentReceivedFunc = props.onPaymentReceived;\r\n this.zoidHelperService.closeFunc = props.close;\r\n this.remittanceAccountId$.next(props.remittanceAccountId);\r\n let customer: Customer = new Customer();\r\n customer.type = CustomerType.Member;\r\n // customer.customerID = props.CustomerId;\r\n if (props.customerId) {\r\n customer.customerID = props.customerId;\r\n console.log(\"customerid: \",props.customerId);\r\n }\r\n this.customerService.customer.next(customer); \r\n this.openPaymentCustomer.customer = customer;\r\n if (!isNaN(props.paymentType)) {\r\n this.zoidHelperService.paymentType$.next(props.paymentType);\r\n }\r\n if (props.confirmationNumber) {\r\n this.openPaymentCustomer.confirmationNumber = props.confirmationNumber;\r\n }\r\n console.log(\"cn: \",props.confirmationNumber)\r\n if (props.remittanceGuid) {\r\n this.openPaymentCustomer.remittanceGuid = props.remittanceAccountGuid;\r\n }\r\n if (props.remittanceAccountValue) {\r\n this.openPaymentCustomer.remittanceAccount = props.remittanceAccountValue;\r\n }\r\n if (props.remittanceAccountGuid) {\r\n this.openPaymentCustomer.remittanceGuid = props.remittanceAccountGuid;\r\n }\r\n \r\n if(props.dob){\r\n this.demoForm.patchValue({dob: props.dob})\r\n }\r\n if(props.ssn){\r\n this.demoForm.patchValue({ssn: props.ssn})\r\n }\r\n if(props.mbi){\r\n this.openPaymentCustomer.mbi = props.mbi;\r\n }\r\n if(props.email){\r\n this.demoForm.patchValue({email: props.email})\r\n }\r\n if(props.firstName){\r\n this.demoForm.patchValue({firstname: props.firstName})\r\n }\r\n if(props.lastName){\r\n this.demoForm.patchValue({lastname: props.lastName})\r\n }\r\n\r\n console.log(\"opcu: \",this.openPaymentCustomer);\r\n } else {\r\n console.log(\"no props\")\r\n }\r\n }\r\n openRecaptchaAlert() {\r\n let dialogData = new DialogData();\r\n dialogData.message =\r\n \"Please complete reCaptcha challange before submitting!\";\r\n dialogData.type = DialogType.Alert;\r\n let dialogRef = this.dialog.open(DialogComponent, {\r\n data: dialogData,\r\n });\r\n }\r\n resolved(captchaResponse: string, res) {\r\n this.openPaymentCustomer.googleRecaptchaResponse = captchaResponse;\r\n }\r\n\r\n useRegex(input) {\r\n let regex = /[0-9]+-[0-9]+-[0-9]+/i;\r\n return regex.test(input);\r\n }\r\n\r\n onSubmit() {\r\n let address = this.addressChild.getAddress();\r\n let paymentMethod = this.creditCardChild.getCreditCard();\r\n this.openPaymentCustomer.SSN = this.demoForm.get('ssn').value\r\n this.openPaymentCustomer.DOB = this.demoForm.get('dob').value\r\n this.openPaymentCustomer.phone = this.demoForm.get('phone').value\r\n this.openPaymentCustomer.lastname = this.demoForm.get('lastname').value;\r\n this.openPaymentCustomer.firstname = this.demoForm.get('firstname').value;\r\n this.openPaymentCustomer.phone = this.demoForm.get('phone').value;\r\n this.openPaymentCustomer.email = this.demoForm.get('email').value;\r\n if (address instanceof Address && paymentMethod instanceof PaymentMethod) {\r\n if (this.openPaymentCustomer.googleRecaptchaResponse === null) {\r\n this.openRecaptchaAlert();\r\n return;\r\n }\r\n this.loaderService.showLoadingSpinner();\r\n paymentMethod.address = address;\r\n this.openPaymentCustomer.customer.fullName = paymentMethod.nameOnAccount;\r\n this.openPaymentCustomer.paymentMethod = paymentMethod;\r\n this.openPaymentCustomer.paymentType = this.zoidHelperService.paymentType$.value;\r\n this.openPaymentCustomer.paymentTotal = this.demoForm.get('amount').value;\r\n this.transactionService.submitOpenPayment(this.openPaymentCustomer).subscribe(\r\n (data) => {\r\n if (\r\n this.zoidHelperService.paymentType$.value ===\r\n PaymentTypes.RecurringPayment\r\n ) {\r\n let openPaymentTransaction = new HixTransaction();\r\n openPaymentTransaction.fullName = this.openPaymentCustomer.customer.fullName;\r\n openPaymentTransaction.customerId = data.customerId;\r\n openPaymentTransaction.recurringPaymentId = data.recurringPaymentId;\r\n openPaymentTransaction.applicationConfirmationNumber = this.openPaymentCustomer.remittanceAccount;\r\n this.zoidHelperService.onPaymentReceivedFunc(openPaymentTransaction);\r\n } else {\r\n this.zoidHelperService.onPaymentReceivedFunc(data.transactionId);\r\n }\r\n this.loaderService.hideLoadingSpinner();\r\n this.isDone = true;\r\n setTimeout(() => {\r\n this.zoidHelperService.closeFunc();\r\n }, 3000);\r\n },\r\n (err) => {\r\n this.isLoading = false;\r\n this.error = true;\r\n }\r\n );\r\n }\r\n }\r\n\r\n closeWindow() {\r\n this.zoidHelperService.closeFunc();\r\n }\r\n}\r\n","export default \"p.mat-subheading-2.header {\\r\\n margin: 20px 0px;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.listtile {\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n.check-icon {\\r\\n color: green;\\r\\n font-size: 100px;\\r\\n width: 100px;\\r\\n height: 50px;\\r\\n margin: 200px auto 60px auto;\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.cross-icon {\\r\\n color: red;\\r\\n font-size: 100px;\\r\\n width: 100px;\\r\\n height: 50px;\\r\\n margin: 200px auto 60px auto;\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.spinner {\\r\\n background-color: rgba(255, 255, 255, 0.7);\\r\\n position: absolute;\\r\\n height: 100%;\\r\\n z-index: 10000;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvcGF5bWVudC1yZXZpZXcvcGF5bWVudC1yZXZpZXcuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGdCQUFnQjtFQUNoQixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLFlBQVk7RUFDWixZQUFZO0VBQ1osNEJBQTRCO0VBQzVCLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsZ0JBQWdCO0VBQ2hCLFlBQVk7RUFDWixZQUFZO0VBQ1osNEJBQTRCO0VBQzVCLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSwwQ0FBMEM7RUFDMUMsa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixjQUFjO0VBQ2QsV0FBVztBQUNiIiwiZmlsZSI6InNyYy9hcHAvcGFnZXMvcGF5bWVudC1yZXZpZXcvcGF5bWVudC1yZXZpZXcuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbInAubWF0LXN1YmhlYWRpbmctMi5oZWFkZXIge1xyXG4gIG1hcmdpbjogMjBweCAwcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4ubGlzdHRpbGUge1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbn1cclxuXHJcbi5jaGVjay1pY29uIHtcclxuICBjb2xvcjogZ3JlZW47XHJcbiAgZm9udC1zaXplOiAxMDBweDtcclxuICB3aWR0aDogMTAwcHg7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIG1hcmdpbjogMjAwcHggYXV0byA2MHB4IGF1dG87XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5jcm9zcy1pY29uIHtcclxuICBjb2xvcjogcmVkO1xyXG4gIGZvbnQtc2l6ZTogMTAwcHg7XHJcbiAgd2lkdGg6IDEwMHB4O1xyXG4gIGhlaWdodDogNTBweDtcclxuICBtYXJnaW46IDIwMHB4IGF1dG8gNjBweCBhdXRvO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4uc3Bpbm5lciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgei1pbmRleDogMTAwMDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuIl19 */\"","import { Component, OnInit } from \"@angular/core\";\r\nimport { PaymentService } from \"src/app/services/Payment/payment.service\";\r\nimport { PaymentMethod } from \"src/app/models/payment-method.model\";\r\nimport { AddressService } from \"src/app/services/Address/address.service\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { Address } from \"src/app/models/address.model\";\r\nimport { TransactionService } from \"src/app/services/Transaction/transaction.service\";\r\nimport {\r\n TransactionSelectionBox,\r\n Transaction,\r\n PaymentTypes,\r\n} from \"src/app/models/transaction.model\";\r\nimport { ZoidHelperService } from \"src/app/services/ZoidHelper/zoid-helper.service\";\r\nimport { LoaderService } from \"src/app/services/Loader/loader.service\";\r\nimport { finalize } from \"rxjs/operators\";\r\nimport { CustomerService } from \"src/app/services/Customer/customer.service\";\r\nimport { Router } from \"@angular/router\";\r\nimport { BCBSLA, VANTAGE } from 'src/app/CommonModule/constants';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: \"app-payment-review\",\r\n templateUrl: \"./payment-review.component.html\",\r\n styleUrls: [\"./payment-review.component.css\"],\r\n})\r\nexport class PaymentReviewComponent implements OnInit {\r\n public selectedPaymentMethod$: BehaviorSubject;\r\n public selectedAddress$: BehaviorSubject
;\r\n public paymentType$: BehaviorSubject;\r\n public paymentTotal: number;\r\n public selectedTotal: number;\r\n public selectedBox: number;\r\n public paymentAmount;\r\n public isDone = false;\r\n public error = false;\r\n companyName: string;\r\n PaymentTypes = PaymentTypes;\r\n public submitButtonName = \"Confirm Payment\";\r\n constructor(\r\n private customerService: CustomerService,\r\n private paymentService: PaymentService,\r\n private addressService: AddressService,\r\n private transactionService: TransactionService,\r\n private zoidHelperService: ZoidHelperService,\r\n private loaderService: LoaderService,\r\n private router: Router\r\n ) {\r\n this.customerService.customer.subscribe((customer) => {\r\n if (customer.customerID === undefined)\r\n this.router.navigateByUrl(\"/error\");\r\n });\r\n this.selectedPaymentMethod$ = this.paymentService.selectedPaymentMethod;\r\n this.selectedAddress$ = this.addressService.selectedAddress;\r\n this.zoidHelperService.paymentTotal$.subscribe(\r\n (data) => (this.paymentTotal = data)\r\n );\r\n this.zoidHelperService.selectedTotal$.subscribe(\r\n (data) => (this.selectedTotal = data)\r\n );\r\n this.zoidHelperService.selectedBox$.subscribe(\r\n (data) => (this.selectedBox = data)\r\n );\r\n this.paymentType$ = this.zoidHelperService.paymentType$;\r\n if (environment.organization === VANTAGE)\r\n this.companyName = \"Vantage Health Plan, Inc\";\r\n else if (environment.organization === BCBSLA)\r\n this.companyName = \"Blue Cross and Blue Shield of Louisiana\";\r\n }\r\n\r\n ngOnInit() {\r\n if (this.selectedBox === TransactionSelectionBox.Input) {\r\n this.paymentAmount = this.selectedTotal;\r\n } else {\r\n this.paymentAmount = this.paymentTotal;\r\n }\r\n\r\n if(this.transactionService.isEditingTransaction)\r\n this.submitButtonName = \"Update Recurring Payment\";\r\n }\r\n\r\n onConfirm(pm: PaymentMethod, sa: Address, price: number, type: PaymentTypes) {\r\n let transaction = new Transaction();\r\n transaction.customerId = pm.customerId;\r\n transaction.paymentMethodId = pm.paymentMethodId;\r\n transaction.paymentTotal = price;\r\n transaction.paymentType = type;\r\n // transaction.remittanceAccountValue = this.customerService.remittanceAccountValue$;\r\n console.log(transaction.remittanceAccountValue);\r\n // transaction.remittanceAccountId = this.customerService.rem;\r\n if(this.customerService.selectedDraftDay.getValue() > 0 ){\r\n transaction.draftDay = this.customerService.selectedDraftDay.getValue();\r\n }\r\n if(this.transactionService.isEditingTransaction){\r\n this.transactionService.editingTransaction.subscribe(\r\n t => {\r\n console.log(\"t\",t);\r\n transaction.remittanceAccountId = t.remittanceAccountId;\r\n transaction.recurringPaymentId =t.recurringPaymentId;\r\n transaction.draftDay = this.customerService.selectedDraftDay.getValue();\r\n this.editRecurringPayment(transaction);\r\n },\r\n err=> console.log(err)\r\n )\r\n\r\n }\r\n else {\r\n console.log(\"no editing\");\r\n transaction.remittanceAccountId = this.zoidHelperService.remmitanceAccountId$.value;\r\n transaction.remittanceAccountValue = this.zoidHelperService.remmitanceAccountValue$.value;\r\n this.createTransaction(transaction);\r\n }\r\n\r\n }\r\n\r\n cancelPayment(){\r\n this.zoidHelperService.closeFunc();\r\n }\r\n\r\n createTransaction(transaction: Transaction) {\r\n this.loaderService.showLoadingSpinner();\r\n this.transactionService.submitTransaction(transaction).subscribe(\r\n (data) => {\r\n this.zoidHelperService.onPaymentReceivedFunc(data);\r\n this.loaderService.hideLoadingSpinner();\r\n this.isDone = true;\r\n setTimeout(() => {\r\n this.zoidHelperService.closeFunc();\r\n }, 2000);\r\n },\r\n (err) => {\r\n this.loaderService.hideLoadingSpinner();\r\n this.error = true;\r\n }\r\n );\r\n }\r\n\r\n editRecurringPayment(transaction: Transaction) {\r\n this.transactionService.editRecurringPayment(transaction)\r\n .subscribe(\r\n data => {\r\n this.loaderService.hideLoadingSpinner();\r\n this.isDone = true;\r\n setTimeout(() => {\r\n this.zoidHelperService.closeFunc();\r\n }, 2000);\r\n },\r\n (err) => {\r\n this.loaderService.hideLoadingSpinner();\r\n this.error = true;\r\n }\r\n )\r\n }\r\n}\r\n","export default \"p {\\r\\n font-size: small;\\r\\n margin: 10px 10px 0px 15px;\\r\\n color: grey;\\r\\n}\\r\\n\\r\\n.mat-subheading-2 {\\r\\n margin: 0px;\\r\\n color: black;\\r\\n}\\r\\n\\r\\n.selectedaddress {\\r\\n border: 1px solid #00abff;\\r\\n border-radius: 5px;\\r\\n width: 99.5% !important;\\r\\n background-color: #d1f0ff;\\r\\n}\\r\\n\\r\\n.add-address {\\r\\n margin: 30px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvc2VsZWN0LWFkZHJlc3Mvc2VsZWN0LWFkZHJlc3MuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGdCQUFnQjtFQUNoQiwwQkFBMEI7RUFDMUIsV0FBVztBQUNiOztBQUVBO0VBQ0UsV0FBVztFQUNYLFlBQVk7QUFDZDs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QixrQkFBa0I7RUFDbEIsdUJBQXVCO0VBQ3ZCLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLFlBQVk7QUFDZCIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL3NlbGVjdC1hZGRyZXNzL3NlbGVjdC1hZGRyZXNzLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJwIHtcclxuICBmb250LXNpemU6IHNtYWxsO1xyXG4gIG1hcmdpbjogMTBweCAxMHB4IDBweCAxNXB4O1xyXG4gIGNvbG9yOiBncmV5O1xyXG59XHJcblxyXG4ubWF0LXN1YmhlYWRpbmctMiB7XHJcbiAgbWFyZ2luOiAwcHg7XHJcbiAgY29sb3I6IGJsYWNrO1xyXG59XHJcblxyXG4uc2VsZWN0ZWRhZGRyZXNzIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjMDBhYmZmO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICB3aWR0aDogOTkuNSUgIWltcG9ydGFudDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDFmMGZmO1xyXG59XHJcblxyXG4uYWRkLWFkZHJlc3Mge1xyXG4gIG1hcmdpbjogMzBweDtcclxufVxyXG4iXX0= */\"","import { Component, OnInit } from \"@angular/core\";\r\nimport { PaymentService } from \"src/app/services/Payment/payment.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { Address } from \"src/app/models/address.model\";\r\nimport { AddressService } from \"src/app/services/Address/address.service\";\r\nimport { Router } from \"@angular/router\";\r\nimport { DialogComponent } from \"src/app/components/dialog/dialog.component\";\r\nimport { MatDialog } from \"@angular/material\";\r\n\r\n@Component({\r\n selector: \"app-select-address\",\r\n templateUrl: \"./select-address.component.html\",\r\n styleUrls: [\"./select-address.component.css\"],\r\n})\r\nexport class SelectAddressComponent implements OnInit {\r\n public addresses$: Observable;\r\n public selectedAddress: Address;\r\n\r\n constructor(\r\n private addressService: AddressService,\r\n private router: Router,\r\n private dialog: MatDialog\r\n ) {\r\n this.addresses$ = this.addressService.getAddresses();\r\n this.addressService.selectedAddress.subscribe(\r\n (data) => (this.selectedAddress = data)\r\n );\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n selectAddress(address: Address) {\r\n this.addressService.selectedAddress.next(address);\r\n this.router.navigate([\"/\", \"portal-payment\"]);\r\n // this.addressService\r\n // .setDefaultAddress(address.addressId)\r\n // .subscribe(res => );\r\n }\r\n\r\n openRemoveDialog(addressId: string) {\r\n let dialogRef = this.dialog.open(DialogComponent, {\r\n data: {\r\n message: \"This address will be removed.\",\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result === \"true\") {\r\n this.addressService.deleteAddress(addressId).subscribe((res) => {\r\n this.addresses$ = this.addressService.getAddresses();\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","export default \".remove {\\r\\n color: red;\\r\\n}\\r\\n\\r\\n.mat-subheading-2 {\\r\\n margin: 0px;\\r\\n color: black;\\r\\n}\\r\\n\\r\\n.selectedPaymentMethod {\\r\\n border: 1px solid #00abff;\\r\\n border-radius: 5px;\\r\\n width: 99.5% !important;\\r\\n background-color: #d1f0ff;\\r\\n}\\r\\n\\r\\n.mat-stroked-button:not([disabled]) {\\r\\n border-color: rgb(244, 67, 54) !important;\\r\\n}\\r\\n\\r\\n.no-payment-methods {\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n height: 250px;\\r\\n -ms-flex-align: center;\\r\\n align-items: center;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n color: grey;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.no-payment-icon {\\r\\n height: 70px;\\r\\n -webkit-filter: invert(53%) sepia(27%) saturate(5%) hue-rotate(144deg) brightness(89%)\\r\\n contrast(96%);\\r\\n filter: invert(53%) sepia(27%) saturate(5%) hue-rotate(144deg) brightness(89%)\\r\\n contrast(96%);\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvc2VsZWN0LXBheW1lbnQvc2VsZWN0LXBheW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFVBQVU7QUFDWjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSx5QkFBeUI7RUFDekIsa0JBQWtCO0VBQ2xCLHVCQUF1QjtFQUN2Qix5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSx5Q0FBeUM7QUFDM0M7O0FBRUE7RUFDRSxvQkFBYTtFQUFiLGFBQWE7RUFDYixhQUFhO0VBQ2Isc0JBQW1CO01BQW5CLG1CQUFtQjtFQUNuQixxQkFBdUI7TUFBdkIsdUJBQXVCO0VBQ3ZCLDBCQUFzQjtNQUF0QixzQkFBc0I7RUFDdEIsV0FBVztFQUNYLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLFlBQVk7RUFDWjtpQkFDZTtVQURmO2lCQUNlO0FBQ2pCIiwiZmlsZSI6InNyYy9hcHAvcGFnZXMvc2VsZWN0LXBheW1lbnQvc2VsZWN0LXBheW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yZW1vdmUge1xyXG4gIGNvbG9yOiByZWQ7XHJcbn1cclxuXHJcbi5tYXQtc3ViaGVhZGluZy0yIHtcclxuICBtYXJnaW46IDBweDtcclxuICBjb2xvcjogYmxhY2s7XHJcbn1cclxuXHJcbi5zZWxlY3RlZFBheW1lbnRNZXRob2Qge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMGFiZmY7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIHdpZHRoOiA5OS41JSAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNkMWYwZmY7XHJcbn1cclxuXHJcbi5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcclxuICBib3JkZXItY29sb3I6IHJnYigyNDQsIDY3LCA1NCkgIWltcG9ydGFudDtcclxufVxyXG5cclxuLm5vLXBheW1lbnQtbWV0aG9kcyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBoZWlnaHQ6IDI1MHB4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBjb2xvcjogZ3JleTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5uby1wYXltZW50LWljb24ge1xyXG4gIGhlaWdodDogNzBweDtcclxuICBmaWx0ZXI6IGludmVydCg1MyUpIHNlcGlhKDI3JSkgc2F0dXJhdGUoNSUpIGh1ZS1yb3RhdGUoMTQ0ZGVnKSBicmlnaHRuZXNzKDg5JSlcclxuICAgIGNvbnRyYXN0KDk2JSk7XHJcbn1cclxuIl19 */\"","import { AfterContentChecked, AfterContentInit, Component, OnInit } from \"@angular/core\";\r\nimport { Observable, BehaviorSubject, Subject } from \"rxjs\";\r\nimport { PaymentMethod, PaymentMethodType } from \"src/app/models/payment-method.model\";\r\nimport { PaymentService } from \"src/app/services/Payment/payment.service\";\r\nimport {\r\n DialogComponent,\r\n DialogData,\r\n DialogType,\r\n} from \"src/app/components/dialog/dialog.component\";\r\nimport { MatDialog } from \"@angular/material\";\r\nimport { Router } from \"@angular/router\";\r\nimport { AddressService } from \"src/app/services/Address/address.service\";\r\nimport { LoaderService } from \"src/app/services/Loader/loader.service\";\r\n\r\n@Component({\r\n selector: \"app-select-payment\",\r\n templateUrl: \"./select-payment.component.html\",\r\n styleUrls: [\"./select-payment.component.css\"],\r\n})\r\nexport class SelectPaymentComponent implements OnInit, AfterContentInit {\r\n public paymentMethods$: Observable;\r\n public selectedPaymentMethod: PaymentMethod;\r\n public isLoading = true;\r\n loadingError$ = new BehaviorSubject(false);\r\n PaymentMethodType = PaymentMethodType;\r\n public canUseACH: boolean;\r\n public canUseCreditCard: boolean;\r\n constructor(\r\n public paymentService: PaymentService,\r\n private adderssService: AddressService,\r\n public dialog: MatDialog,\r\n private router: Router,\r\n private loaderService: LoaderService\r\n ) {\r\n this.paymentMethods$ = this.paymentService.paymentMethods;\r\n this.paymentService.selectedPaymentMethod.subscribe(\r\n (data) => (this.selectedPaymentMethod = data)\r\n );\r\n this.getPaymentMethods();\r\n\r\n }\r\n ngAfterContentInit(): void {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.canUseACH = this.paymentService.canUseACH.getValue();\r\n this.canUseCreditCard = this.paymentService.canUseCreditCard.getValue();\r\n }\r\n\r\n // selectPaymentMethod(paymentMethodId: string) {\r\n // // this.customerService\r\n // // .getPaymentMethodById(paymentMethodId)\r\n // // .pipe(pm => this.customerService.selectedPaymentMethod.next(pm));\r\n // }\r\n\r\n openRemoveDialog(paymentMethodId: string) {\r\n let dialogData = new DialogData();\r\n dialogData.message = \"This payment method will be removed.\";\r\n dialogData.type = DialogType.Confirmation;\r\n let dialogRef = this.dialog.open(DialogComponent, {\r\n data: dialogData,\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result === \"true\") {\r\n this.paymentService\r\n .deletePaymentMethod(paymentMethodId)\r\n .subscribe((res) => {\r\n this.paymentService.getPaymentMethods().subscribe((pms) => {\r\n this.paymentService.paymentMethodsSubject.next(pms);\r\n });\r\n this.adderssService.addresses.next([]);\r\n });\r\n }\r\n });\r\n }\r\n\r\n selectPaymentMethod(paymentMethod: PaymentMethod) {\r\n // console.log(paymentMethod);\r\n this.paymentService.selectedPaymentMethod.next(paymentMethod);\r\n this.popScreen();\r\n // this.paymentService\r\n // .setDefaultPaymentMethod(paymentMethod.paymentMethodId)\r\n // .subscribe(data => this.router.navigate([\"/\", \"portal-payment\"]));\r\n }\r\n\r\n popScreen() {\r\n let url = this.router.url.split(\"/\");\r\n url.pop();\r\n this.router.navigate(url);\r\n }\r\n\r\n getPaymentMethods(){\r\n this.isLoading = true;\r\n this.paymentService\r\n .getPaymentMethods()\r\n .subscribe(\r\n (pms) => {\r\n this.paymentService.paymentMethodsSubject.next(pms);\r\n },\r\n (err) => {\r\n this.loadingError$.next(true);\r\n }\r\n )\r\n }\r\n\r\n editPaymentMethod(paymentMethod : PaymentMethod){\r\n this.router.navigate([this.router.url + '/edit'], {\r\n state: {\r\n data: {\r\n paymentMethod: paymentMethod\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","export default \"p.mat-subheading-2.header {\\n margin: 20px 0px;\\n text-align: center;\\n}\\n\\n.listtile {\\n padding: 10px;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n justify-items: center;\\n -ms-flex-align: center;\\n align-items: center;\\n}\\n\\n.check-icon {\\n color: green;\\n font-size: 100px;\\n width: 100px;\\n height: 50px;\\n margin: 200px auto 60px auto;\\n display: block;\\n}\\n\\n.cross-icon {\\n color: red;\\n font-size: 100px;\\n width: 100px;\\n height: 50px;\\n margin: 200px auto 60px auto;\\n display: block;\\n}\\n\\n.spinner {\\n background-color: rgba(255, 255, 255, 0.7);\\n position: absolute;\\n height: 100%;\\n z-index: 10000;\\n width: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvc3RvcC1yZWN1cnJpbmctcGF5bWVudC9DOlxcVXNlcnNcXHZkaGFrYWxcXHNvdXJjZVxccmVwb3NcXHZhbnRhZ2UtcGF5bWVudC1wb3J0YWxcXFZhbnRhZ2VQYXltZW50Q29yZUFuZ3VsYXJcXENsaWVudEFwcC9zcmNcXGFwcFxccGFnZXNcXHN0b3AtcmVjdXJyaW5nLXBheW1lbnRcXHN0b3AtcmVjdXJyaW5nLXBheW1lbnQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3BhZ2VzL3N0b3AtcmVjdXJyaW5nLXBheW1lbnQvc3RvcC1yZWN1cnJpbmctcGF5bWVudC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGdCQUFBO0VBQ0Esa0JBQUE7QUNDRjs7QURFQTtFQUNFLGFBQUE7RUFDQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSwwQkFBQTtNQUFBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxzQkFBQTtNQUFBLG1CQUFBO0FDQ0Y7O0FERUE7RUFDRSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLDRCQUFBO0VBQ0EsY0FBQTtBQ0NGOztBREVBO0VBQ0UsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSw0QkFBQTtFQUNBLGNBQUE7QUNDRjs7QURFQTtFQUNFLDBDQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtFQUNBLFdBQUE7QUNDRiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL3N0b3AtcmVjdXJyaW5nLXBheW1lbnQvc3RvcC1yZWN1cnJpbmctcGF5bWVudC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbInAubWF0LXN1YmhlYWRpbmctMi5oZWFkZXIge1xyXG4gIG1hcmdpbjogMjBweCAwcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4ubGlzdHRpbGUge1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4uY2hlY2staWNvbiB7XHJcbiAgY29sb3I6IGdyZWVuO1xyXG4gIGZvbnQtc2l6ZTogMTAwcHg7XHJcbiAgd2lkdGg6IDEwMHB4O1xyXG4gIGhlaWdodDogNTBweDtcclxuICBtYXJnaW46IDIwMHB4IGF1dG8gNjBweCBhdXRvO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4uY3Jvc3MtaWNvbiB7XHJcbiAgY29sb3I6IHJlZDtcclxuICBmb250LXNpemU6IDEwMHB4O1xyXG4gIHdpZHRoOiAxMDBweDtcclxuICBoZWlnaHQ6IDUwcHg7XHJcbiAgbWFyZ2luOiAyMDBweCBhdXRvIDYwcHggYXV0bztcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLnNwaW5uZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHotaW5kZXg6IDEwMDAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59IiwicC5tYXQtc3ViaGVhZGluZy0yLmhlYWRlciB7XG4gIG1hcmdpbjogMjBweCAwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmxpc3R0aWxlIHtcbiAgcGFkZGluZzogMTBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uY2hlY2staWNvbiB7XG4gIGNvbG9yOiBncmVlbjtcbiAgZm9udC1zaXplOiAxMDBweDtcbiAgd2lkdGg6IDEwMHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIG1hcmdpbjogMjAwcHggYXV0byA2MHB4IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uY3Jvc3MtaWNvbiB7XG4gIGNvbG9yOiByZWQ7XG4gIGZvbnQtc2l6ZTogMTAwcHg7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBtYXJnaW46IDIwMHB4IGF1dG8gNjBweCBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnNwaW5uZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAxMDAwMDtcbiAgd2lkdGg6IDEwMCU7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { PaymentMethod } from \"src/app/models/payment-method.model\";\r\nimport { TransactionService } from \"src/app/services/Transaction/transaction.service\";\r\nimport { Transaction } from \"src/app/models/transaction.model\";\r\nimport { ZoidHelperService } from \"src/app/services/ZoidHelper/zoid-helper.service\";\r\nimport { LoaderService } from \"src/app/services/Loader/loader.service\";\r\nimport { CustomerService } from \"src/app/services/Customer/customer.service\";\r\nimport {\r\n DialogComponent,\r\n DialogData,\r\n DialogType,\r\n} from \"src/app/components/dialog/dialog.component\";\r\nimport { MatDialog } from \"@angular/material\";\r\n\r\n@Component({\r\n selector: 'app-stop-recurring-payment',\r\n templateUrl: './stop-recurring-payment.component.html',\r\n styleUrls: ['./stop-recurring-payment.component.scss']\r\n})\r\nexport class StopRecurringPaymentComponent implements OnInit {\r\n public isDone = false;\r\n public error = false;\r\n public infoText: string;\r\n public submitButtonName = \"Cancel Recurring Payments\";\r\n public remittanceAccountValue$;\r\n public remittanceAccountId$;\r\n constructor(\r\n private transactionService: TransactionService,\r\n private zoidHelperService: ZoidHelperService,\r\n private loaderService: LoaderService,\r\n private customerService: CustomerService,\r\n public dialog: MatDialog,\r\n ) {\r\n this.remittanceAccountId$ = this.zoidHelperService.remmitanceAccountId$;\r\n this.remittanceAccountValue$ = this.zoidHelperService.remmitanceAccountValue$;\r\n }\r\n\r\n ngOnInit() {\r\n this.infoText = \"You're about to cancel your payment\";\r\n this.getRecurringPayment();\r\n }\r\n\r\n getRecurringPayment(){\r\n if(!this.transactionService.isEditingTransaction){\r\n this.transactionService\r\n .checkRecurringPayments(this.customerService.customer.getValue().customerID,this.remittanceAccountValue$.getValue(),1)\r\n .subscribe(\r\n (data) => this.transactionService.editingTransaction.next(data)\r\n )\r\n } else {\r\n console.log(this.transactionService.editingTransaction.getValue());\r\n }\r\n }\r\n\r\n openConfirmationDialog(){\r\n let dialogData = new DialogData();\r\n dialogData.message = \"Are you really sure you want to cancel your recurring payment\";\r\n dialogData.type = DialogType.Confirmation;\r\n let dialogRef = this.dialog.open(DialogComponent, {\r\n data: dialogData,\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result === \"true\") {\r\n this.transactionService.editingTransaction.subscribe(\r\n t => {\r\n console.log(t);\r\n this.cancelRecurringPayment(t);\r\n },\r\n err => console.log(err)\r\n )\r\n }\r\n });\r\n }\r\n\r\n cancelRecurringPayment(rpTransaction: Transaction){\r\n this.transactionService.cancelRecurringPayment(rpTransaction)\r\n .subscribe(\r\n data => {\r\n this.loaderService.hideLoadingSpinner();\r\n this.infoText = \"Your recurring payment has been successfully cancelled. This window will now close.\";\r\n setTimeout(() => {\r\n this.zoidHelperService.closeFunc();\r\n }, 2000);\r\n },\r\n (err) => {\r\n console.log(\"callbackerror\");\r\n this.loaderService.hideLoadingSpinner();\r\n this.error = true;\r\n }\r\n )\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable, throwError, BehaviorSubject, of } from \"rxjs\";\r\nimport { Address } from \"src/app/models/address.model\";\r\nimport { map, catchError, mergeMap } from \"rxjs/operators\";\r\nimport { CustomerService } from \"../Customer/customer.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class AddressService {\r\n public selectedAddress: BehaviorSubject
= new BehaviorSubject<\r\n Address\r\n >(new Address());\r\n public addresses: BehaviorSubject = new BehaviorSubject(\r\n []\r\n );\r\n constructor(\r\n private http: HttpClient,\r\n private customerService: CustomerService\r\n ) {\r\n // this.getDefaultAddress().subscribe((data) =>\r\n // this.selectedAddress.next(data)\r\n // );\r\n }\r\n\r\n getAddresses(): Observable {\r\n return this.customerService.customer.pipe(\r\n mergeMap((data) => {\r\n if (data.customerID) {\r\n return this.http\r\n .get(`/api/customer/${data.customerID}/address`)\r\n .pipe(\r\n map((data) =>\r\n data.map((data) => new Address().deserialize(data))\r\n ),\r\n catchError(() => throwError(\"Addresses not found\"))\r\n );\r\n } else {\r\n return throwError(\"Customer not found\");\r\n }\r\n })\r\n );\r\n return this.http.get(\"/api/address\").pipe(\r\n map((data) => data.map((data) => new Address().deserialize(data))),\r\n catchError(() => throwError(\"Addresses not found\"))\r\n );\r\n }\r\n\r\n getAllAddresses(): Observable {\r\n return this.customerService.customer.pipe(\r\n mergeMap((data) => {\r\n if (data.customerID) {\r\n return this.http\r\n .get(`/api/customer/${data.customerID}/address/all`)\r\n .pipe(\r\n map((data) =>\r\n data.map((data) => new Address().deserialize(data))\r\n ),\r\n catchError(() => throwError(\"Addresses not found\"))\r\n );\r\n } else {\r\n return throwError(\"Customer not found\");\r\n }\r\n })\r\n );\r\n }\r\n\r\n getDefaultAddress(): Observable
{\r\n return this.http.get
(\"/api/address/default\").pipe(\r\n map((data) => new Address().deserialize(data)),\r\n catchError(() => throwError(\"Unable to fetch default address\"))\r\n );\r\n }\r\n\r\n addAddress(address: Address, source: string): Observable
{\r\n let data = {\r\n ...address,\r\n source: source,\r\n };\r\n return this.http\r\n .post
(\"/api/address\", data)\r\n .pipe(catchError(() => throwError(\"Unable to add new address\")));\r\n }\r\n\r\n deleteAddress(addressId: string) {\r\n return this.http.delete(`/api/address/${addressId}`).pipe(\r\n map((response) => console.log()),\r\n catchError(() => throwError(\"Address not deleted\"))\r\n );\r\n }\r\n\r\n setDefaultAddress(addressId: string): Observable {\r\n let body = JSON.stringify(addressId);\r\n let headers = {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n };\r\n return this.http.patch(`/api/address/default`, body, headers).pipe(\r\n map((response) => true),\r\n catchError(() => throwError(\"Unable to set default address\"))\r\n );\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport createAuth0Client from \"@auth0/auth0-spa-js\";\r\nimport Auth0Client from \"@auth0/auth0-spa-js/dist/typings/Auth0Client\";\r\nimport {\r\n from,\r\n of,\r\n Observable,\r\n BehaviorSubject,\r\n combineLatest,\r\n throwError,\r\n} from \"rxjs\";\r\nimport { tap, catchError, concatMap, shareReplay } from \"rxjs/operators\";\r\nimport { Router } from \"@angular/router\";\r\nimport { environment } from \"src/environments/environment\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class Auth0Service {\r\n // Create an observable of Auth0 instance of client\r\n auth0Client$ = (from(\r\n createAuth0Client({\r\n domain: environment.auth0Domain,\r\n client_id: environment.auth0ClientId,\r\n redirect_uri: `${window.location.origin}`,\r\n audience: environment.auth0Audience,\r\n })\r\n ) as Observable).pipe(\r\n shareReplay(1), // Every subscription receives the same shared value\r\n catchError((err) => throwError(err))\r\n );\r\n // Define observables for SDK methods that return promises by default\r\n // For each Auth0 SDK method, first ensure the client instance is ready\r\n // concatMap: Using the client instance, call SDK method; SDK returns a promise\r\n // from: Convert that resulting promise into an observable\r\n isAuthenticated$ = this.auth0Client$.pipe(\r\n concatMap((client: Auth0Client) => from(client.isAuthenticated())),\r\n tap((res) => (this.loggedIn = res))\r\n );\r\n handleRedirectCallback$ = this.auth0Client$.pipe(\r\n concatMap((client: Auth0Client) => from(client.handleRedirectCallback()))\r\n );\r\n // Create subject and public observable of user profile data\r\n private userProfileSubject$ = new BehaviorSubject(null);\r\n userProfile$ = this.userProfileSubject$.asObservable();\r\n // Create a local property for login status\r\n loggedIn: boolean = null;\r\n\r\n constructor(private router: Router) {\r\n // On initial load, check authentication state with authorization server\r\n // Set up local auth streams if user is already authenticated\r\n this.localAuthSetup();\r\n // Handle redirect from Auth0 login\r\n this.handleAuthCallback();\r\n }\r\n\r\n // When calling, options can be passed if desired\r\n // https://auth0.github.io/auth0-spa-js/classes/auth0client.html#getuser\r\n getUser$(options?): Observable {\r\n return this.auth0Client$.pipe(\r\n concatMap((client: Auth0Client) => from(client.getUser(options))),\r\n tap((user) => this.userProfileSubject$.next(user))\r\n );\r\n }\r\n\r\n private localAuthSetup() {\r\n // This should only be called on app initialization\r\n // Set up local authentication streams\r\n const checkAuth$ = this.isAuthenticated$.pipe(\r\n concatMap((loggedIn: boolean) => {\r\n if (loggedIn) {\r\n // If authenticated, get user and set in app\r\n // NOTE: you could pass options here if needed\r\n return this.getUser$();\r\n }\r\n // If not authenticated, return stream that emits 'false'\r\n return of(loggedIn);\r\n })\r\n );\r\n checkAuth$.subscribe();\r\n }\r\n\r\n login(redirectPath: string = \"/\") {\r\n // A desired redirect path can be passed to login method\r\n // (e.g., from a route guard)\r\n // Ensure Auth0 client instance exists\r\n this.auth0Client$.subscribe((client: Auth0Client) => {\r\n // Call method to log in\r\n client.loginWithRedirect({\r\n redirect_uri: `${window.location.origin}`,\r\n appState: { target: redirectPath },\r\n });\r\n });\r\n }\r\n\r\n private handleAuthCallback() {\r\n // Call when app reloads after user logs in with Auth0\r\n const params = window.location.search;\r\n if (params.includes(\"code=\") && params.includes(\"state=\")) {\r\n let targetRoute: string; // Path to redirect to after login processsed\r\n const authComplete$ = this.handleRedirectCallback$.pipe(\r\n // Have client, now call method to handle auth callback redirect\r\n tap((cbRes) => {\r\n // Get and set target redirect route from callback results\r\n targetRoute =\r\n cbRes.appState && cbRes.appState.target\r\n ? cbRes.appState.target\r\n : \"/portal-payment\";\r\n }),\r\n concatMap(() => {\r\n // Redirect callback complete; get user and login status\r\n return combineLatest([this.getUser$(), this.isAuthenticated$]);\r\n })\r\n );\r\n // Subscribe to authentication completion observable\r\n // Response will be an array of user and login status\r\n authComplete$.subscribe(([user, loggedIn]) => {\r\n // Redirect to target route after callback processing\r\n this.router.navigate([targetRoute]);\r\n });\r\n }\r\n }\r\n\r\n logout() {\r\n // Ensure Auth0 client instance exists\r\n this.auth0Client$.subscribe((client: Auth0Client) => {\r\n // Call method to log out\r\n client.logout({\r\n client_id: \"yMrfVFT2b3yN6VoRS2p492MABwtywZka\",\r\n returnTo: `${window.location.origin}/logout`,\r\n });\r\n });\r\n }\r\n\r\n getTokenSilently$(options?): Observable {\r\n return this.auth0Client$.pipe(\r\n concatMap((client: Auth0Client) => from(client.getTokenSilently(options)))\r\n );\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { map, shareReplay, tap, catchError } from \"rxjs/operators\";\r\nimport { Observable, BehaviorSubject, of } from \"rxjs\";\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class AuthenticationService {\r\n private _isLoggedIn: boolean = false;\r\n private _checkedLoggedIn: boolean = false;\r\n private _isLoggedInObservable: Observable;\r\n public loggedIn: boolean = false;\r\n constructor(private http: HttpClient) {\r\n // this.checkWindowsAuth().subscribe((data) => {\r\n // console.log(data);\r\n // console.log(\"login status \", this.loggedIn);\r\n // this.loggedIn.next(true);\r\n // });\r\n }\r\n\r\n checkWindowsAuth(): Observable {\r\n\r\n if (this._checkedLoggedIn) {\r\n return of(this._isLoggedIn);\r\n } else if (this._isLoggedInObservable != null) {\r\n return this._isLoggedInObservable;\r\n } else {\r\n this._isLoggedInObservable = this.http\r\n .get(\"/api/customer/authenticate\")\r\n .pipe(\r\n map((response: Response) => {\r\n this._checkedLoggedIn = true;\r\n this._isLoggedIn = true;\r\n return this._isLoggedIn;\r\n })\r\n // catchError((err) => of(false))\r\n );\r\n\r\n return this._isLoggedInObservable;\r\n }\r\n // return this.http.get(\"/api/customer/authenticate\").pipe(\r\n // map((data) => {\r\n // console.log(data);\r\n\r\n // return true;\r\n // }),\r\n // catchError((err) => of(false))\r\n // );\r\n }\r\n\r\n\r\n public get isLoggedIn() : boolean {\r\n return this._isLoggedIn;\r\n }\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable, throwError, BehaviorSubject } from \"rxjs\";\r\nimport {\r\n Customer,\r\n NewCustomer,\r\n NewCustomerWithConfirmationNum,\r\n} from \"src/app/models/customer.model\";\r\nimport { map, catchError, tap, mergeMap } from \"rxjs/operators\";\r\nimport { PaymentMethod } from \"src/app/models/payment-method.model\";\r\nimport { ZoidHelperService } from \"src/app/services/ZoidHelper/zoid-helper.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class CustomerService {\r\n public customer: BehaviorSubject = new BehaviorSubject(\r\n new Customer()\r\n );\r\n public programRules: BehaviorSubject;\r\n public draftDays$: BehaviorSubject;\r\n public draftDays: any[];\r\n public selectedDraftDay: BehaviorSubject = new BehaviorSubject(null);\r\n public remittanceAccountValue$;\r\n constructor(private http: HttpClient, private zoidHelperService: ZoidHelperService) {\r\n // this.getCustomer().subscribe((data) => this.customer.next(data));\r\n this.remittanceAccountValue$ = this.zoidHelperService.remmitanceAccountValue$;\r\n this.programRules = new BehaviorSubject(null);\r\n }\r\n\r\n getCustomer(): Observable {\r\n return this.http.get(\"/api/customer\").pipe(\r\n map((data) => new Customer().deserialize(data)),\r\n catchError(() => throwError(\"Customer not found\"))\r\n );\r\n }\r\n\r\n getCustomerById(customerId: string): Observable {\r\n return this.http.get(`/api/customer/${customerId}`).pipe(\r\n map((data) => new Customer().deserialize(data)),\r\n catchError(() => throwError(\"Customer not found\"))\r\n );\r\n }\r\n\r\n getCustomerByIdAndRemittance(customerId: string, ra: string): Observable {\r\n return this.http.get(`/api/customer/${customerId}/${ra}`).pipe(\r\n map((data) => new Customer().deserialize(data)),\r\n catchError(() => throwError(\"Customer not found\"))\r\n );\r\n }\r\n\r\n createCustomer(data: NewCustomer) {\r\n return this.http.post(\"/api/customer\", data).pipe(\r\n map((data) => new Customer().deserialize(data)),\r\n catchError(() => {\r\n return throwError(\"Customer not created\");\r\n })\r\n );\r\n }\r\n\r\n getProgram(myCustomer: Customer, ra: string) {\r\n console.log(\"in draft days\");\r\n // var ra = this.zoidHelperService.remittanceAccountId$.getValue();\r\n return this.http.get(`/api/customer/getProgramRules/${myCustomer.customerID}/${ra}`).pipe(\r\n map((data) => {\r\n console.log(\"draft days: \",data);\r\n return data;\r\n }),\r\n catchError(() => {\r\n return throwError(\"Customer not created\");\r\n })\r\n );\r\n }\r\n getProgramByCustomerId(myCustomer: string, ra: string) {\r\n console.log(\"getProgramByCustomerId\");\r\n // var ra = this.zoidHelperService.remittanceAccountId$.getValue();\r\n return this.http.get(`/api/customer/getProgramRules/${myCustomer}/${ra}`).pipe(\r\n map((data) => {\r\n console.log(\"draft days: \",data);\r\n return data;\r\n }),\r\n catchError(() => {\r\n return throwError(\"Customer not created\");\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n} from \"@angular/common/http\";\r\nimport { Auth0Service } from \"../Auth/auth0.service\";\r\nimport { Observable, throwError } from \"rxjs\";\r\nimport { mergeMap, catchError } from \"rxjs/operators\";\r\nimport { AuthenticationService } from \"../Auth/authentication.service\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class InterceptorService implements HttpInterceptor {\r\n constructor(private auth0: Auth0Service, private router: Router) {}\r\n\r\n intercept(\r\n req: HttpRequest,\r\n next: HttpHandler\r\n ): Observable> {\r\n let url = this.router.url.split(\"/\");\r\n if (url[1] === \"one-time-payment\") {\r\n return next.handle(req);\r\n } else if (this.auth0.loggedIn) {\r\n return this.auth0.getTokenSilently$().pipe(\r\n mergeMap((token) => {\r\n const tokenReq = req.clone({\r\n setHeaders: { Authorization: `Bearer ${token}` },\r\n });\r\n return next.handle(tokenReq);\r\n }),\r\n catchError((err) => throwError(err))\r\n );\r\n } else {\r\n const tokenReq = req.clone({\r\n withCredentials: true,\r\n });\r\n return next.handle(tokenReq);\r\n }\r\n\r\n // return next.handle(req);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class LoaderService {\r\n isLoading: boolean = false;\r\n\r\n constructor() {}\r\n\r\n showLoadingSpinner(){\r\n this.isLoading = true;\r\n }\r\n\r\n hideLoadingSpinner(){\r\n this.isLoading = false;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\n// import \"rxjs/Rx\";\r\nimport { Observable, throwError, BehaviorSubject, of } from \"rxjs\";\r\nimport { PaymentView } from \"../../models/payment-view\";\r\nimport { PaymentMethod } from \"src/app/models/payment-method.model\";\r\nimport { map, catchError, tap, mergeMap } from \"rxjs/operators\";\r\nimport { CustomerService } from \"../Customer/customer.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class PaymentService {\r\n public selectedPaymentMethod = new BehaviorSubject(\r\n new PaymentMethod()\r\n );\r\n public paymentMethodsSubject: BehaviorSubject = new BehaviorSubject<\r\n PaymentMethod[]\r\n >(null);\r\n\r\n public canUseACH: BehaviorSubject = new BehaviorSubject(null);\r\n public canUseCreditCard: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private customerService: CustomerService\r\n ) {\r\n this.getDefaultPaymentMethod().subscribe((data) => {\r\n if (data != null) this.selectedPaymentMethod.next(data);\r\n });\r\n }\r\n\r\n get paymentMethods(): Observable {\r\n return this.paymentMethodsSubject.asObservable();\r\n }\r\n\r\n getPaymentMethods(): Observable {\r\n return this.customerService.customer.pipe(\r\n mergeMap((data) => {\r\n if (data.customerID) {\r\n return this.http\r\n .get(`/api/customer/${data.customerID}/payment`)\r\n .pipe(\r\n map((data) =>\r\n data.map((data) => new PaymentMethod().deserialize(data))\r\n ),\r\n catchError(() => throwError(\"Payment Methods not found\"))\r\n );\r\n } else {\r\n return throwError(\"No Customer id found\");\r\n }\r\n })\r\n );\r\n }\r\n\r\n // setDefaultPaymentMethod() :\r\n\r\n getDefaultPaymentMethod(): Observable {\r\n return this.customerService.customer.pipe(\r\n mergeMap((data) => {\r\n if (data.customerID) {\r\n return this.http\r\n .get(\r\n `/api/customer/${data.customerID}/payment/default`\r\n )\r\n .pipe(\r\n map((data) => new PaymentMethod().deserialize(data)),\r\n catchError(() =>\r\n throwError(\"Unable to fetch default payment method\")\r\n )\r\n );\r\n } else {\r\n return of(null);\r\n }\r\n })\r\n );\r\n\r\n return this.http.get(\"/api/payment/default\").pipe(\r\n map((data) => new PaymentMethod().deserialize(data)),\r\n catchError(() => throwError(\"Unable to fetch default payment method\"))\r\n );\r\n }\r\n\r\n getPaymentMethodById(paymentMethodId: string) {\r\n return this.getPaymentMethods().pipe(\r\n map((data) =>\r\n data.filter((pm) => pm.paymentMethodId === paymentMethodId).pop()\r\n )\r\n );\r\n }\r\n\r\n submitPaymentMethod(\r\n paymentMethodData: PaymentMethod\r\n ): Observable {\r\n return this.customerService.customer.pipe(\r\n mergeMap((data) => {\r\n if (data.customerID) {\r\n return this.http\r\n .post(\r\n `/api/customer/${data.customerID}/payment`,\r\n paymentMethodData\r\n )\r\n .pipe(\r\n catchError((err) => {\r\n return throwError(err.error);\r\n })\r\n );\r\n } else {\r\n return throwError(\"Customer not found\");\r\n }\r\n })\r\n );\r\n }\r\n\r\n updatePaymentMethod(\r\n paymentMethodData: PaymentMethod\r\n ): Observable {\r\n return this.customerService.customer.pipe(\r\n mergeMap((data) => {\r\n if (data.customerID) {\r\n return this.http\r\n .patch(\r\n `/api/customer/${data.customerID}/payment/${paymentMethodData.paymentMethodId}`,\r\n paymentMethodData\r\n )\r\n .pipe(\r\n catchError((err) => {\r\n return throwError(err.error);\r\n })\r\n );\r\n } else {\r\n return throwError(\"Customer not found\");\r\n }\r\n })\r\n );\r\n }\r\n\r\n deletePaymentMethod(paymentMethodId: string) {\r\n if (\r\n this.selectedPaymentMethod.getValue().paymentMethodId === paymentMethodId\r\n ) {\r\n this.getDefaultPaymentMethod().subscribe((data) => {\r\n this.selectedPaymentMethod.next(data);\r\n });\r\n }\r\n // return of(null);\r\n return this.customerService.customer.pipe(\r\n mergeMap((data) => {\r\n if (data.customerID) {\r\n return this.http\r\n .delete(\r\n `/api/customer/${data.customerID}/payment/${paymentMethodId}`\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (\r\n this.selectedPaymentMethod.getValue().paymentMethodId ===\r\n paymentMethodId\r\n ) {\r\n this.getDefaultPaymentMethod().subscribe(\r\n (data) => {\r\n this.selectedPaymentMethod.next(data);\r\n },\r\n (err) =>\r\n this.selectedPaymentMethod.next(new PaymentMethod())\r\n );\r\n }\r\n }),\r\n catchError(() => throwError(\"Payment Method not deleted\"))\r\n );\r\n } else {\r\n return of(null);\r\n }\r\n })\r\n );\r\n }\r\n\r\n setDefaultPaymentMethod(paymentMethodId: string): Observable {\r\n // console.log(typeof addressId);\r\n let body = JSON.stringify(paymentMethodId);\r\n let options = {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n };\r\n return this.http.patch(`/api/payment/default`, body, options).pipe(\r\n map((response) => true),\r\n catchError(() => throwError(\"Unable to get default payment method\"))\r\n );\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RecordingService {\r\n\r\n constructor(\r\n private http: HttpClient \r\n ) \r\n {\r\n\r\n }\r\n\r\n pause(): Observable {\r\n try{\r\n return this.http.get(\r\n \"/api/RecordingControls/Pause\",\r\n { }\r\n );\r\n } catch(e){\r\n console.log(e);\r\n } \r\n }\r\n\r\n resume(): Observable {\r\n return this.http.get(\r\n \"/api/RecordingControls/Resume\",\r\n { }\r\n );\r\n }\r\n}\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable, throwError, BehaviorSubject, of, Subject } from \"rxjs\";\r\nimport { Transaction } from \"src/app/models/transaction.model\";\r\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { map, catchError, mergeMap } from \"rxjs/operators\";\r\nimport { CustomerService } from \"../Customer/customer.service\";\r\nimport { OtpCustomer } from \"src/app/models/otpCustomer.model\";\r\nimport { HixCustomer } from \"src/app/models/hixCustomer.model\";\r\nimport { OpenPaymentCustomer } from \"../../models/open-payment-customer.model\";\r\nimport { ExistingPaymentCheckObj } from \"src/app/pages/hix-redirect/hix-redirect.component\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class TransactionService {\r\n\r\n isEditingTransaction : boolean = false;\r\n editingTransaction: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private customerService: CustomerService,\r\n\r\n ) {}\r\n\r\n submitTransaction(transaction: Transaction): Observable {\r\n return this.customerService.customer.pipe(\r\n mergeMap((data) => {\r\n if (data.customerID) {\r\n return this.http\r\n .post(\r\n `/api/customer/${data.customerID}/transaction`,\r\n transaction\r\n )\r\n .pipe(\r\n map((data) => new Transaction().deserialize(data)),\r\n catchError((err) => throwError(err))\r\n );\r\n } else {\r\n return throwError(\"No Customer found\");\r\n }\r\n })\r\n );\r\n return this.http.post(\"/api/transaction\", transaction).pipe(\r\n map((data) => new Transaction().deserialize(data)),\r\n catchError((err) => throwError(err))\r\n );\r\n }\r\n\r\n submitOtp(otpCustomer: OtpCustomer): Observable {\r\n return this.http\r\n .post(`/api/customer/submitOtp`, otpCustomer)\r\n .pipe(\r\n map((data) => new Transaction().deserialize(data)),\r\n catchError((err) => throwError(err))\r\n );\r\n }\r\n\r\n submitHix(hixCustomer: HixCustomer): Observable {\r\n console.log(\"hc: \",hixCustomer)\r\n return this.http\r\n .post(`/api/Hix/submitHixRedirect`, hixCustomer)\r\n .pipe(\r\n map((data) => new Transaction().deserialize(data)),\r\n catchError((err) => throwError(err))\r\n );\r\n }\r\n\r\n submitOpenPayment(opCustomer: OpenPaymentCustomer): Observable {\r\n console.log(\"hc: \",opCustomer)\r\n return this.http\r\n .post(`/api/Hix/openPayment`, opCustomer)\r\n .pipe(\r\n map((data) => new Transaction().deserialize(data)),\r\n catchError((err) => throwError(err))\r\n );\r\n }\r\n\r\n getRecurringPayment(recurringPaymentId: string, customerId: string): Observable {\r\n let params = new HttpParams();\r\n params = params.set('recurringPaymentId', recurringPaymentId);\r\n return this.http\r\n .get(\r\n `/api/customer/${customerId}/getRecurringPaymentById/?${params.toString()}`\r\n )\r\n .pipe(\r\n map((data) => new Transaction().deserialize(data)),\r\n catchError((err) => throwError(err))\r\n );\r\n } \r\n\r\n editRecurringPayment(transaction: Transaction): Observable {\r\n return this.customerService.customer.pipe(\r\n mergeMap((data) => {\r\n if (data.customerID) {\r\n return this.http\r\n .put(\r\n `/api/customer/${data.customerID}/transaction/recurringPayment`,\r\n transaction\r\n )\r\n .pipe(\r\n map((data) => new Transaction().deserialize(data)),\r\n catchError((err) => throwError(err))\r\n );\r\n } else {\r\n return throwError(\"No Customer found\");\r\n }\r\n })\r\n );\r\n }\r\n\r\n checkRecurringPayments(customerId: string, accountId: string, accountType: number): Observable {\r\n return this.http\r\n .get(\r\n `/api/customer/${customerId}/recurringPaymentsWidget?customerId=${customerId}&accountId=${accountId}&accountType=${accountType}`,\r\n )\r\n .pipe(\r\n map((data) => new Transaction().deserialize(data)),\r\n catchError((err) => throwError(err))\r\n );\r\n\r\n }\r\n\r\n cancelRecurringPayment(transaction: Transaction): Observable {\r\n return this.customerService.customer.pipe(\r\n mergeMap((data) => {\r\n if (data.customerID) {\r\n return this.http\r\n .delete(\r\n `/api/customer/${data.customerID}/recurringPaymentsWidget/${transaction.recurringPaymentId}`\r\n )\r\n .pipe(\r\n map((data) => new Transaction().deserialize(data)),\r\n catchError((err) => throwError(err))\r\n );\r\n } else {\r\n return throwError(\"No Customer found\");\r\n }\r\n })\r\n );\r\n }\r\n\r\n checkExists(existingPaymentObj: ExistingPaymentCheckObj){\r\n // console.log(\"check exists: \"+subscriberId + \" \"+exchangeId)\r\n return this.http\r\n .post(`/api/Hix/checkExisting`, existingPaymentObj)\r\n .pipe(\r\n catchError((err) => throwError(err))\r\n );\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { PaymentTypes } from \"src/app/models/transaction.model\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ZoidHelperService {\r\n public paymentTotal$ = new BehaviorSubject(0);\r\n public selectedTotal$: BehaviorSubject = new BehaviorSubject(0);\r\n public paymentType$: BehaviorSubject = new BehaviorSubject(\r\n PaymentTypes.OneTimePayment\r\n );\r\n public remmitanceAccountId$: BehaviorSubject = new BehaviorSubject(\r\n null\r\n );\r\n public remmitanceAccountValue$: BehaviorSubject = new BehaviorSubject(\r\n null\r\n );\r\n public programValue$: BehaviorSubject = new BehaviorSubject(\r\n null\r\n );\r\n public policyValue$: BehaviorSubject = new BehaviorSubject(\r\n null\r\n );\r\n public hixSaml$: BehaviorSubject = new BehaviorSubject(null)\r\n public selectedBox$: BehaviorSubject = new BehaviorSubject(1);\r\n public onPaymentReceivedFunc = (param) => {};\r\n public closeFunc = () => {\r\n window.close();\r\n };\r\n\r\n constructor() {}\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nimport { BCBSLA } from \"src/app/CommonModule/constants\";\r\n\r\nexport const environment = {\r\n production: true,\r\n organization: BCBSLA,\r\n // localVantageUrl: \"https://localhost:44362\",\r\n // hostedVantageUrl: \"https://payment.vantagehealthplan.com\",\r\n // localBcbslaUrl: \"https://localhost:44363\",\r\n // hostedBcbslaUrl: \"https://bcbslapaymentportal.com\",\r\n currentEnv: \"ProdBlue\",\r\n auth0Domain: \"bcbsla.auth0.com\",\r\n auth0ClientId: \"0F3wR3nnCb8p13v3hAvHmB5eGf0tCWRi\",\r\n auth0Audience: \"https://bcbslapaymentportal.com/api\",\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import 'hammerjs';\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n"],"sourceRoot":"webpack:///"}